Buenas a todos, tengo un problema con sockets en windows. Me pasa lo siguiente tengo una única conexión de sockets y tengo un hilo que comprueba que la conexión este activa enviando un mensaje cada 2.5 segundos, el problema resulta que al usar send() en Windows 7 cuando la conexión no esta activa en vez de devolverme SOCKET_ERROR el programa crashea.
DWORD WINAPI keepalive(LPVOID){
char KEEP_ALIVE = '\0';
while(1){
if(send(cnn, &KEEP_ALIVE, sizeof(char), 0) == SOCKET_ERROR){
TerminateThread(hiloRecibir, 0);
hiloCnn = CreateThread(NULL, 0, esperarCnn, 0, 0, 0);
printf("WINSOCK: Desconectado.\n");
ExitThread(0);
}
Sleep(2500);
}
}
EDIT:
En Windows XP funciona perfectamente.