2014-01-12 30 views
1
SOCKET s; // Create a SOCKET for listening for 
      // incoming connection requests. 
SOCKET new_socket; // create a socket for accepting incoming connection 
uint16 port =18001; 


void CreateSocket() 
{ 
    int sin_size; 
    WSADATA wsa; 
     struct sockaddr_in server, master; // creating a socket address structure: structure contains ip address and port number 


      printf("Initializing Winsock\n"); 
     if(WSAStartup(MAKEWORD(2,2), &wsa)!=0) 
     { 
      printf("Failed Error Code: %d", WSAGetLastError()); 
      return -1; 
     } 
     printf("Initialised\n"); 


     //CREATING a SOCKET 

     if ((s = socket(AF_INET, SOCK_STREAM, 0)) == -1) 
     { 
      printf("Could not Create Socket\n"); 
      //return 0; 
     } 
     printf("Socket Created\n"); 

     server.sin_addr.s_addr = inet_addr("192.168.0.1"); 
     server.sin_family = AF_INET;  
     server.sin_port = htons(port); 


     //Binding between the socket and ip address 

     if(bind (s, (struct sockaddr *) &server, sizeof(server)) == SOCKET_ERROR) 
     { 
      printf("Bind failed with error code: %d", WSAGetLastError()); 
     } 
     puts("Bind Done"); 


     //Listen to incoming connections 
     listen(s, 3); 


     //Accepting the incoming connection 


        sin_size = sizeof(struct sockaddr_in); 

      new_socket = accept(s, (struct sockaddr *)&master, &sin_size); 

      printf("\n I got a connection from (%s , %d)", 
        inet_ntoa(master.sin_addr),ntohs(master.sin_port)); 
      closesocket(new_socket); 


      /*new_socket = accept(s, NULL, NULL); 

      if (new_socket == INVALID_SOCKET) 
      { 
     printf("accept failed with error: %ld\n", WSAGetLastError()); 
     closesocket(new_socket); 
     WSACleanup(); 
     return 1; 
    } 
      else 
     printf("Client connected.\n");*/ 
} 

我已經創建了套接字並接受了來自主服務器的連接,但是任何人都告訴我檢查指定端口號上是否有任何數據可用的條件?我正在使用Windows操作系統。以上代碼用於爲Windows操作系統創建套接字。如何檢查數據是否在套接字上可用?

如何讓上面的代碼接受端口號作爲發送和接收數據的參數?

+2

你使用什麼套接字api - winsock?請更具體一些,如果您創建了套接字,請發佈您的代碼以幫助回答您的問題。 – mockinterface

+0

我編輯了我的代碼,並且還添加了一個額外的問題。 – user3187069

+0

看看這裏:http://msdn.microsoft.com/en-us/library/windows/desktop/ms740141%28v=vs.85%29.aspx – alk

回答

相關問題