c语言socket实验报告,Socket编程利用TCP协议的实验报告

2023-05-16

《Socket编程利用TCP协议的实验报告》由会员分享,可在线阅读,更多相关《Socket编程利用TCP协议的实验报告(8页珍藏版)》请在人人文库网上搜索。

1、Socket 编程报告( TCP/IP 协议)实验目的通过 C+ 来实现 TCP/IP 协议下的 Socket 编程,掌握 TCP 协议的算法实现实验原理Connect 连接到服务器,send 发送消息,等待处理,通信完客户端 建立 Socket ,通过端口号和地址确定目标服务器,使用 成后调用 CloseSocket 关闭 Socket服务端 建立 Socket ,声明自身的端口号和地址并绑定到 Socket ,使用 Listen 打开监听,然后不断用 Accept 去查看是否有连 接,如果有,捕获 Socket ,并通过 Recv 获取消息的内容,通信完成后调用 CloseSocket 关。

2、闭这个对应 Accept 到的 Socket , 如果不再需要等待任何客户端连接,那么用 CloseSocket 关闭掉自身的 Socket三 实验代码( C+ 实现)服务器端代码如下:#pragma once#include #include #pragma comment (lib,ws2_32.lib)class CServerNetpublic:/ 初始化服务器 ,返回 0 表示成功int Init(const char* address,int port);/ 更新数据void Run();private:SOCKET m_sock;int CServerNet:Init( cons。

3、t char* address,int port )int rlt = 0;/ 用于记录错误信息,并输出int iErrorMsg;/ 初始化 WinSockWSAData wsaData;iErrorMsg = WSAStartup(MAKEWORD(1,1),&wsaData);if (iErrorMsg != NO_ERROR) / 初始化 WinSock 失败printf(wsastartup failed with error : %dn,iErrorMsg); rlt = 1;return rlt;/ 创建服务端 Socketm_sock = socket(AF_INET,SOCK。

4、_STREAM,IPPROTO_TCP);if (m_sock = INVALID_SOCKET)/ 创建 Socket 异常printf(socket failed with error : %dn,WSAGetLastError(); rlt = 2;return rlt;/ 声明信息sockaddr_in serverAddr; serverAddr.sin_family = AF_INET; serverAddr.sin_port = port;serverAddr.sin_addr.s_addr = inet_addr(address);/ 绑定iErrorMsg = bind(m_。

5、sock,(sockaddr*)&serverAddr,sizeof(serverAddr); if (iErrorMsg #include#pragma comment(lib, Ws2_32.lib)class CClientNetpublic:/ 连接上指定服务器int Connect(int port,const char* address);/ 发送信息int SendMsg(const char* msg,int len);/ 关闭void Close();private:SOCKET m_sock;int CClientNet:Connect( int port,const ch。

6、ar* address )int rlt = 0;/ 用于记录错误信息并输出int iErrMsg;/ 启动 WinSockWSAData wsaData;iErrMsg = WSAStartup(MAKEWORD(1,1),&wsaData);if (iErrMsg != NO_ERROR)/ 有错误printf(failed with wsaStartup error : %dn,iErrMsg); rlt = 1;return rlt;/ 创建 Socketm_sock = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);if (m_sock = INVA。

7、LID_SOCKET)/ 创建 Socket 失败printf(socket failed with error : %dn,WSAGetLastError();rlt = 2;return rlt;/ 目标服务器数据 sockaddr_in sockaddrServer;sockaddrServer.sin_family = AF_INET; sockaddrServer.sin_port = port;sockaddrServer.sin_addr.s_addr = inet_addr(address);/ 连接 ,sock 与目标服务器连接iErrMsg = connect(m_sock。

8、,(sockaddr*)&sockaddrServer,sizeof(sockaddrServer); if (iErrMsg 0)printf(connect failed with error : %dn,iErrMsg);rlt = 3;return rlt;return rlt;int CClientNet:SendMsg(const char* msg,int len)int rlt = 0;int iErrMsg = 0;/ 发送消息,指定 sock 发送消息 iErrMsg = send(m_sock,msg,len,0);if (iErrMsg 0)/ 发送失败 printf(。

9、send msg failed with error : %dn,iErrMsg);rlt = 1; return rlt;return rlt;void CClientNet:Close() closesocket(m_sock);int main()CClientNet client;/ 连接到 127.0.0.1 (即本地) ,端口号为 8888 的服务端 printf(Connectn);client.Connect(8888,127.0.0.1);/ 发送消息 printf(send msgn);client.SendMsg(hello0,sizeof(hello0);/ 关闭 socket printf(closen);client.Close();system(pause);四实验结果 F笛畫二诂乂匕州.査飞亡厲弐7严刊亍Socket 在通信虽然程序是五心得体会通过本次实验, 我了解了 TCP/IP 协议与 UDP 协议的异同之处, 理解了中的地位和作用。 在调试程序过程中的查错纠错也让我对程序有了深刻的理解,借鉴他人的,但我通过调试之后的进一步解析阅读也掌握了其中的原理,收获颇丰。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c语言socket实验报告,Socket编程利用TCP协议的实验报告 的相关文章

随机推荐