Contestaron algo similar en varios threads recientes. Podes usar select() con algun timeout antes del recv() y solo ejecutar este ultimo si existe algo para recibir, de esa forma nunca se va a bloquear. Luego de N selects sin nada para recibir, aborta. La otra es poner una alarma u otro thread que envie una señal al thread que esta recibiendo, asi recv() aborta con errno == EINTR pudiendo manejar el tema en handler de la señal.
saludos On 10/22/07, Mauro Ciancio <[EMAIL PROTECTED]> wrote: > On 10/21/07, John Knight <[EMAIL PROTECTED]> wrote: > > > > > > lo q dije antes serviria para el caso de un server que recibia algo del > cliente...haces un cliente "bobo" en el server q complete con datos dummy > > en caso del cliente ya es otra historia. > > vos te referis si el server se cierra y el cliente queda colgado con un > rcv? > > si es eso lo que te referis, cerra el server pero primero dejando que se > finalicen todas las transacciones de sockets que están actualmente > > ahora, si se "cuelga" el server y se cierra de forma abrupta ahi ya no se > q decirte > > kisas en el loop del main se podria controlar con un atributo de tiempo > dentro del socket para saber hace cuanto tiempo esta reciviendo > > si pasan por ejemplo 10 segundos cerras el cliente por falla de conexion > al server > > todo esto te lo digo de mi limitada experiencia > > muy probablemente exista otra solucion (un rcv con timeout?) > > saludos > > espero q sirva de algo > > Gracias, pero lo que digo yo es que la conexion esta establecida entre el > cliente > y el sevidor. El cliente esta esperando un mensaje y yo quiero cortar la > conexión > en ese momento. No quiero esperar a recibir un mensaje del servidor. Probe > llamando > a un close() desde otro hilo pero el receive no se despierta. > > Existe alguna forma?? > > Gracias, Mauro. > > > _______________________________________________ > Lista de correo Programacion. > [email protected] > http://listas.fi.uba.ar/mailman/listinfo/programacion > > -- juanii _______________________________________________ Lista de correo Programacion. [email protected] http://listas.fi.uba.ar/mailman/listinfo/programacion
