#include #include 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 sockServer=socket(AF_INET,SOCK_STREAM,0); SOCKADDR_IN addrServer; addrServer.sin_addr.S_un.S_addr =htonl(INADDR_ANY); //网络字节序;INADDR_ANY对任何IP地址都有兴趣; addrServer.sin_family=AF_INET; addrServer.sin_port=htons(3000); //htons 转换字节长度; //addrServer.sin_zero= bind(sockServer,(SOCKADDR*)&addrServer,sizeof(SOCKADDR)) ; //(SOCKADDR*)强制类型转换; listen(sockServer,3); //监听最大个数int backlog; SOCKADDR_IN addrClient; int length=sizeof(SOCKADDR); while(1) //设置死循环; { SOCKET sockconnt= accept(sockServer,(SOCKADDR*)&addrClient,&length); char recebuffer[100]; //存放我们说话的字符; sprintf(recebuffer,"you receive the word: %s",inet_ntoa(addrClient.sin_addr)); //接收的是网路字节序,转化我们能看 得懂的实际的字节序,并存到buffer中;客户端的网际地址转化成IP地址; char sendbuffer[100]; recv(sockconnt,recebuffer,100,0); send(sockconnt,sendbuffer,100,0); printf("%s",recebuffer); closesocket(sockconnt); } }