手机网站定制 杭州,个人摄影作品网站,邯郸市嘉禾网络科技,wordpress icp涵数本代码可直接使用 根据TCP/IP三次握手#xff0c;实验时可使用两台电脑#xff0c;或者打开两个终端模拟通信。 服务器端#xff1a; #include iostream
#include windows.husing namespace std;#pragma comment(lib,ws2_32.lib) //引用静态链接…本代码可直接使用 根据TCP/IP三次握手实验时可使用两台电脑或者打开两个终端模拟通信。 服务器端 #include iostream
#include windows.husing namespace std;#pragma comment(lib,ws2_32.lib) //引用静态链接库void main()
{WORD wVersionRequested;WSADATA wsaData;int err;wVersionRequested MAKEWORD(2,2); err WSAStarup( wVersionRequested,wsaData);if( err ! 0).0{//tell the user that we could nto find a usable//WinSock DLL;return;}if(LOBYTE(wsaData.wVersion)!2||HIBYTE(wsaData.wVersion)!2){WSACleanup();return;}//The WinSock DLL is acceptable,Proceed windows下版本的协商SOCKET sockSer;//服务器套接字 sockSer socket(AF_INET,SOCK_STREAM,0);//创建套接字AF_INET代表IP家族,0是默认的方式创建 有连接是流式 无连接是数据包套接字SOCKADDR_IN addrSer,addrCli;addrSer.sin_family AF_INET;addrSer.sin_port htons(5050);addrSer.sin_addr.S_un.S_addr inet_addr(192.168.3.173);bind(sockSer,(SOCKADDR)*addrSer,sizeof(SOCKADDR));//绑定套接字 跟服务器的相关地址信息进行绑定listen(sockSer,5);//监听套接字 5是队列大小SOCKET sockConn;//给出一个相应的套接字int len sizeof(SOCKADDR);coutServer Wait Client Connect.......endl;sockConn accept(sockSer,(SOCKADDR*)addrCli,len);//处理新到连接 3个参数分别是服务器的套接字号客户端地址相应地址层度的地址以地址形式传递if(sockConn INVALID_SOCKET)//INVALID_SOCKET非法套接字{coutServer Accept Client Connect Failendl;return;}else{coutServer Accept Client Connect Successendl;return;}char sendbuf[256];char recvbuf[256];while(1){coutSercinsendbuf;//缓冲区if(strcmp(sendbuf,quit)0);//相等表示服务器请求退出{break;}send(sockConn,sendbuf,strlen(sendbuf)1,0);//发送服务器 1为了字符串的/0 3个参数分别是要发送的套接字缓冲长度recv(sockConn,recvbuf,256,0);//接收coutCli:recvbufendl;}closesocket(sockSer);//WSACleanup();//清除版本信息} 用户端 #include iostream
#include windows.husing namespace std;#pragma comment(lib,ws2_32.lib)void main()
{WORD wVersionRequested;WSADATA wsaData;int err;wVersionRequested MAKEWORD(2,2);err WSAStarup( wVersionRequested,wsaData);if( err ! 0){//tell the user that we could nto find a usable//WinSock DLL;return;}if(LOBYTE(wsaData.wVersion)!2||HIBYTE(wsaData.wVersion)!2){WSACleanup();return;}//The WinSock DLL is acceptable,Proceed windows下版本的协商SOCKET sockSli;//服务器套接字sockSli socket(AF_INET,SOCK_STREAM,0);//创建套接字 家族协议流式套接字默认值SOCKADDR_IN addrSer;//addrSer.sin_family AF_INET;addrSer.sin_port htons(5050);addrSer.sin_addr.S_un.S_addr inet_addr (127.0.0.1);int res connect(sockCli,(SOCKADDR*)addrSer,sizeof(SOCKADDR));//res为connect返回值 查阅相关函数若为0则表示没有错误if (res ! 0){coutClient Connect Servrer Fail!endl;return;}else{coutClient Connect Servrer Success!endl;}char sendbuf[256];char recvbuf[256];//发空间和接收空间while(1){recv(sockCli,recvbuf,256,0);coutSer:recvbufendl;coutCli:;cinsendbuf;if(strcmp(sendbuf,quit) 0)//客户端请求退出{break;}send(sockCli,sendbuf,strlen(sendbuf)1,0);}closesocket(sockCli);WSACleanup();
}转载于:https://www.cnblogs.com/wuyepeng/p/9717005.html