соединение сервер / клиент-сервер - PullRequest
0 голосов
/ 30 апреля 2010

У меня есть программа на стороне сервера, которая создает прослушивающий сокет на стороне сервера. Возникающая проблема заключается в том, что кажется, что клиентская сторона отправляет запрос на подключение, который отклоняется, если сокет серверной стороны прослушивает, но подключается, если серверная программа не запущена. Я вижу, как серверная программа получает запрос клиента при отладке. Кажется, что клиент не может подключиться к прослушивающему сокету. Есть предложения по решению?

На стороне сервера принимается фрагмент кода.

    void CSocketListen::OnAccept(int nErrorCode)
    {
    CSocket::OnAccept(nErrorCode);

   CSocketServer* SocketPtr = new CSocketServer();
    if (Accept(*SocketPtr))
    {
         // add to  list of client sockets connected
    }
    else
   {
        delete SocketPtr;
   }

The client side code connect is like this.

    SOCKET cellModem;  
    sockaddr_in handHeld;
    handHeld.sin_family = AF_INET; //Address family    
    handHeld.sin_addr.s_addr = inet_addr("127.0.0.1");    
    handHeld.sin_port = htons((u_short)1113); //port to use

    cellModem=socket(AF_INET,SOCK_STREAM,0);    

    if(cellModem == INVALID_SOCKET)
    {
      // log socket failure
      return false;
    }
    else
    {
     // log socket success
    }


   if (connect(cellModem,(const struct sockaddr*)&handHeld, sizeof(handHeld)) != 0 )
   {
     // log socket connection success   
   }
   else
   {
     // log socket connection failure
     closesocket(cellModem);
   }

1 Ответ

0 голосов
/ 30 апреля 2010

Похоже, что этот порт открывается чем-то другим? Можете ли вы проверить, что вы не боретесь за один и тот же порт?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...