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.
(^_^) me gustaria ayudar... pero aun soy noob en esto de programacion :silbar:
No se porque sera, pero si la conexión se cerrara bien, send devolvería 0 en vez de SOCKET_ERROR
Ya solucioné, era un problema que tenía en el hilo donde recibo los datos, los recibía mal y al parecer se cagaba el socket.