title: Is it possible to use the same port and ip address?
body: <p>I created a TCP server program which binds, listen and accepting a connection from  the specific ip address and port number. 
  During the first connection : Server is accepting a SYN packet from the client and sending an ACK back to the client. Later getting a ACK from the client. Finally Client is RST with the server. </p>
  
  <p>During the second connection the client is sending a SYN packet to the slave but there is no ACK from the server. </p>
  
  <p>I think there is no binding is possible during the second connection with the same ip address and port number.</p>
  
  <p>Is it possible to bind with the SAME ip address and port number in the second connection ?</p>
  
  <p>server :</p>
  
  <pre><code>SOCKET sock;
      SOCKET fd;
  uint16 port = 52428;
  
  // I am also using non blocking mode
  
  void CreateSocket()
  {
     struct sockaddr_in server, client;  // creating a socket address structure: structure contains ip address and port number
    WORD wVersionRequested;
  WSADATA wsaData;
  int len;
  int iResult;
  u_long iMode = 1;
  
      printf("Initializing Winsock\n");
  
  
      wVersionRequested = MAKEWORD (1, 1);
      iResult =  WSAStartup (wVersionRequested, &amp;wsaData);      
  if (iResult != NO_ERROR)
    printf("Error at WSAStartup()\n"); 
  
  
      // create socket
      sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
      if (sock &lt; 0)    {
          printf("Could not Create Socket\n");
          //return 0;
      }
  
      printf("Socket Created\n");
  
  
  
  
      iResult = ioctlsocket(sock, FIONBIO, &amp;iMode);
         if (iResult &lt; 0)
          printf("\n ioctl failed \n");
  
  
      // create socket address of the server
      memset( &amp;server, 0, sizeof(server));
  
      // IPv4 - connection
      server.sin_family = AF_INET;
      // accept connections from any ip adress
      server.sin_addr.s_addr = htonl(INADDR_ANY);
      // set port
      server.sin_port = htons(52428);
  
  
      //Binding between the socket and ip address
      if(bind (sock, (struct sockaddr *)&amp;server, sizeof(server)) &lt; 0)
      {
          printf("Bind failed with error code: %d", WSAGetLastError());
      }
  
      //Listen to incoming connections
      if(listen(sock, 10) == -1){
          printf("Listen failed with error code: %d", WSAGetLastError());
      }
  
      printf("Server has been successfully set up - Waiting for incoming connections");
  
      for(;;){
          len = sizeof(client);
          fd = accept(sock, (struct sockaddr*) &amp;client, &amp;len);
  
          if (fd &lt; 0){
              printf("Accept failed");
              closesocket(sock);
          }
          //echo(fd);
          printf("\n Process incoming connection from (%s , %d)", inet_ntoa(client.sin_addr),ntohs(client.sin_port));
  //closesocket(fd);
      }
  
  }
  </code></pre>