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; 
} 
//---------------------------------------------------------------------------