Server.c #include <winsock.h> #include <windows.h> #include <stdio.h> #include <string.h> int main(void) { WSADATA wd; SOCKET listenSocket; SOCKET connSocket; SOCKADDR_IN saListen; SOCKADDR_IN saConn; char buffer[100]; int port=5000; int i=0; int len=sizeof(saConn); WSAStartup(MAKEWORD(2,2),&wd); listenSocket=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); memset(&saListen, 0, sizeof(saListen)); saListen.sin_family=AF_INET; saListen.sin_port=htons(port); saListen.sin_addr.S_un.S_addr=INADDR_ANY; if ((bind(listenSocket,(SOCKADDR *)&saListen,sizeof(saListen)))==SOCKET_ERROR) { printf("%d/n",WSAGetLastError()); WSACleanup(); return 0; } len = sizeof(saConn); if ((listen(listenSocket,5))==SOCKET_ERROR) { printf("2%d/n",WSAGetLastError()); WSACleanup(); return 0; } if ((connSocket=accept(listenSocket,(SOCKADDR *)&saConn,&len))==INVALID_SOCKET) { printf("%d/n",WSAGetLastError()); WSACleanup(); return 0; } while(1) { i=0; if ((i=recv(connSocket,buffer,100,0))==SOCKET_ERROR) { printf("5/n"); closesocket(listenSocket); getchar(); return 0; } buffer[i]='/0'; printf("/n%s/n",buffer); } closesocket(listenSocket); closesocket(connSocket); WSACleanup(); } Client.c #include <winsock.h> #include <stdio.h> #include <windows.h> #include <string.h> int main(void) { WSADATA wd; SOCKET cSocke; SOCKADDR_IN sa; int port=5000; char buffer[100]; int ret=0; int len=0; if(WSAStartup(MAKEWORD(2,2),&wd)!=0) printf("0/n"); if((cSocke=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP))==INVALID_SOCKET) { printf("1/n"); WSACleanup(); return 0; } memset(&sa, 0, sizeof(sa)); sa.sin_family=AF_INET; sa.sin_port=htons(port); sa.sin_addr.S_un.S_addr=inet_addr("127.0.0.1"); if ((ret=connect(cSocke,(struct sockaddr*)&sa,sizeof(sa)))==SOCKET_ERROR) { printf("a%d/n",WSAGetLastError()); printf("%d/n",ret); WSACleanup(); return 0; } while (1) { memset(buffer,0, sizeof(buffer)); printf("%d/n",sizeof(buffer)); scanf("%s",buffer); len=strlen(buffer); buffer[len]='/0'; if ((send(cSocke,buffer,strlen(buffer),0))==SOCKET_ERROR) { printf("3/n"); WSACleanup(); return 0; } printf("%d",strlen(buffer)); } closesocket(cSocke); WSACleanup(); } 这是我做的Win socket 阻塞模式的基本结构! 因为近期正在看关于这方面的东西。经过几天的努力。。终于做出来个基本的东西了。里面还有很多东西不完善。写出来留信念!!