Socket 编程实验报告一、程序代码(1)服务器端#include #include #pragma comment(lib, "ws2_32.lib")void main(){ WORD wVersionRequested;WSADATA wsaData;int err;wVersionRequested = MAKEWORD( 1, 1 );err = WSAStartup( wVersionRequested, &wsaData );if ( err != 0 ) { return; } if ( LOBYTE( wsaData.wVersion ) != 1 || HIBYTE( wsaData.wVersion ) != 1 ) { WSACleanup( );return; }SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,0); SOCKADDR_IN addrSrv; addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);addrSrv.sin_family=AF_INET;addrSrv.sin_port=htons(6000); bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));// 绑定端口listen(sockSrv,SOMAXCONN); //SOMAXCONN 由系统确定请求数SOCKADDR_IN addrClient;// 连接上的客户端 ip 地址int len=sizeof(SOCKADDR); while(1){SOCKET sockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);// 接受客户端连接,猎取客户端的 ip 地址 char sendBuf[50];sprintf(sendBuf,"Welcome %s to here!",inet_ntoa(addrClient.sin_addr));// 组合消息发送出去 send(sockConn,sendBuf,strlen(sendBuf)+1,0);// 发送消息到客户端 char recvBuf[50]; recv(sockConn,recvBuf,50,0);// 接受客户端消息 printf("%s\n",recvBuf); closesocket(sockConn); WSACleanup();//断开连接} }(2)客户端代码#include #include #pragma comment(lib, "ws2_32.lib")void main(){ WORD wVersionRequested; WSADATA wsaData;//WSAata 用来存储系统传回的关于 WinSocket 的资料。 int err; wVersionRequested = MAKEWORD( 1, 1 ); err = WSAStartup( wVersionRequested, &wsaData ); if ( err != 0 ) { return; } if ( LOBYTE( wsaData.wVersion ) != 1 ||HIBYTE( wsaData.wVersion ) != 1 ) { WSACleanup( ); return; } SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0);// AF_INET ..tcp 连接 ,初始化连接与端口号 SOCKADDR_IN addrSrv; addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");//本机地址,服务器在本机开启 addrSrv.sin_family=AF_INET; addrSrv.sin_port=htons(6000);// 设置端口号 conne...