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

Responder a