У меня есть программа на стороне сервера, которая создает прослушивающий сокет на стороне сервера. Возникающая проблема заключается в том, что кажется, что клиентская сторона отправляет запрос на подключение, который отклоняется, если сокет серверной стороны прослушивает, но подключается, если серверная программа не запущена. Я вижу, как серверная программа получает запрос клиента при отладке. Кажется, что клиент не может подключиться к прослушивающему сокету. Есть предложения по решению?
На стороне сервера принимается фрагмент кода.
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);
}