www.pudn.com > send_recieve_data_by_winsock.rar > Server.cpp
//--------------------------------------------------------------------------- #include#include #include #pragma hdrstop //--------------------------------------------------------------------------- #pragma argsused int main(int argc, char* argv[]) { int sock,length; struct sockaddr_in server; int msgsock; char buf[1024]; int rval; WORD wVersionRequested; WSADATA wsaData; wVersionRequested =MAKEWORD(2,0); int err= WSAStartup(wVersionRequested,&wsaData); if(err==-1) { perror("WSAStartup"); exit(1); } sock=socket(AF_INET,SOCK_STREAM,0); if(sock<0) { perror("Opening stream socket"); exit(1); } server.sin_family=AF_INET; server.sin_port=htons(7016); server.sin_addr.s_addr=INADDR_ANY; if(bind(sock,(const struct sockaddr *)&server,sizeof(server))<0) { perror("GETING socket name"); exit(1); } printf("socket port #%d\n",ntohs(server.sin_port)); listen(sock,5); do { msgsock=accept(sock,(struct socketaddr *)0,(int *)0); printf("Have client connected.\n"); if(msgsock==-1) perror("accept"); else do { memset(buf,0,sizeof(buf)); if((rval=recv(msgsock,buf,1024,MSG_OOB))<0) { if(rval==WSAEINPROGRESS) printf("Hello1\n"); if(rval==WSAENETRESET) printf("Hello2\n"); if(rval==WSAENOTSOCK) printf("Hello3\n"); if(rval==WSAEOPNOTSUPP) { printf("Hello4\n"); } perror("reading stream message"); getchar(); exit(1); } else if(rval==0) printf("ending connections\n"); else printf("---->%s\n",buf); }while(rval!=0) ; closesocket(msgsock); }while(true); WSACleanup(); return 0; } //---------------------------------------------------------------------------