#include<winsock2.h> #include<stdio.h> void main() { int i=1; 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(5000); bind(sockSrv,(SOCKADDR*)&addrsrv,sizeof(SOCKADDR)); listen(sockSrv,2); SOCKADDR_IN addrClient; int len=sizeof(SOCKADDR); char sendBuf[256]; char recvBuf[256];//存放缓冲区数据 while(1) { SOCKET sockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);//获得套接字 if(sockConn!=INVALID_SOCKET && i==1) { sprintf(sendBuf,"Welcome %s to eric's computer!",inet_ntoa(addrClient.sin_addr)); send(sockConn,sendBuf,strlen(sendBuf)+1,0);//发送欢迎消息 i=2; } while(1) { recv(sockConn,recvBuf,256,0);//接受消息 printf("客户端说:/n%s/n",recvBuf); if(!strlen(recvBuf)) { i=1; break; } strcpy(recvBuf,""); } } }