Keep Alive Sockets

Iniciado por naderST, 21 Julio 2011, 04:26 AM

0 Miembros y 1 Visitante están viendo este tema.

naderST

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.

Código (cpp) [Seleccionar]

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.

edgemx

(^_^) me gustaria ayudar... pero aun soy noob en esto de programacion  :silbar:

Arkangel_0x7C5

No se porque sera, pero si la conexión se cerrara bien, send devolvería 0 en vez de SOCKET_ERROR

naderST

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.