This code hangs on connect() if connect hangs. how to make this so that if
connect hangs i time out after 10 seconds. perhaps there is someway to do
this with ioctlsocket and select? can anyone show how to do this?
sListerSocks[i].status = 1;
sListerSocks[i].sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (sock == INVALID_SOCKET)
{
sListerSocks[i].status = 0;
sListerSocks[i].sock = 0;
iCon = -1;
goto _END_ADD_NEW_CONNECTION;
}
sockaddr_in clientService;
clientService.sin_family = AF_INET;
clientService.sin_addr.s_addr = inet_addr( pIp );
sListerSocks[i].ip = clientService.sin_addr.s_addr;
clientService.sin_port = htons(8082);
memset(clientService.sin_zero, 0, 8);
if( connect( sListerSocks[i].sock, (SOCKADDR*) &clientService,
sizeof(clientService) ) == SOCKET_ERROR)
{
closesocket(sListerSocks[i].sock);
sListerSocks[i].status = 0;
sListerSocks[i].sock = 0;
iCon = -1;
goto _END_ADD_NEW_CONNECTION;
}
|