Cerrando sockets, close_wait

Oswaldo Hernández listas en soft-com.es
Mar Mayo 22 18:51:17 CEST 2007


dvilla en gmx.net escribió:
> El Tue, 22 May 2007 17:59:09 +0200
> Oswaldo Hernández <listas en soft-com.es> escribió:
> 
>> dvilla en gmx.net escribió:
>>> El Tue, 22 May 2007 16:58:22 +0200
>>> Oswaldo Hernández <listas en soft-com.es> escribió:
>>>
>>>> dvilla en gmx.net escribió:
>>>>> Hola:
>>>>>
>>>>> socket.recv(n) devuelve como mucho n bytes, pero puede devolver
>>>>> menos. 
>>>>>
>>>>> Si no hay datos disponibles para leer, pero la conexión sigue
>>>>> activa recv() bloquea. Pero si recv() devuelve '', es decir,
>>>>> cadena vacía, significa que el otro extremo de la conexión cerró
>>>>> el socket, al menos para escritura. No hace falta usar select()
>>>>> para esto, al menos con sockets bloqueantes (que lo son por
>>>>> defecto).
>>>>>
>>>> Si, pero me gustaria utilizar sockets no bloqueantes, entonces el
>>>> recv puede devolver cero bytes al llegar el timeout.
>>> ¿Por qué quieres usar sockets no bloqueantes? Suelen traer muchos
>>> más problemas que ventajas.
>>>
>> Debido a que utilizo mi propio protocolo entre el cliente y servidor
>> me interesa que no bloqueen, otro motivo es el que detalla el link
>> que me indicas en el apartado 'Cuando los sockets mueren'.
>>
>>
>>
>>>> Lo que desearia es poder comprobar el estado del socket antes de
>>>> realizar la lectura. No encuentro ninguna funcion especifica para
>>>> esto.
>>> Mira
>>> http://wiki.python.org/moin/HowTo/Sockets?highlight=%28socket%29 
>>
>> Saludos,
>>
> 
> 
> Pues como habrás visto, si necesitas sockets no bloqueantes, no te
> quedan muchas opciones a parte de select() o poll()
> 

Poll() no entiendo muy bien como funciona, utilizaré select() de momento.

Gracias.


-- 
*****************************************
Oswaldo Hernández
oswaldo (@) soft-com (.) es
*****************************************
------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


Más información sobre la lista de distribución Python-es