Cerrando sockets, close_wait

Reynaldo Baquerizo Micheline rbaquerizo en ehas.org
Mar Mayo 22 16:48:29 CEST 2007


No he programado sockets, pero talvez puedas encontrar lo que buscas 
mirando estos tutoriales.

http://www.ibm.com/developerworks/edu/l-dw-linux-pysocks-i.html
http://www.ibm.com/developerworks/edu/l-dw-linux-sock-i.html
http://www.ibm.com/developerworks/edu/l-dw-linux-sock2-i.html

Nota: Para descargarlos hay que crear una cuenta. Aunque no es complicación.

Oswaldo Hernández escribió:
> Hola a todos,
>
> Estoy trabajando en mi primera aplicacion con sockets en python, hasta 
> ahora todo va mas o menos bien ;), excepto:
>
> Cuando en el lado del cliente cierro el socket, no llega ninguna 
> interrupcion al servidor, y haciendo un netstat veo que el estado de 
> la conexion se queda en CLOSE_WAIT.
>
> Buscando en la red la unica solucion que he visto es utilizando select:
>
> sel = select.select([sck], [], [], .1)
> if sel[0]:
>     datos=sck.recv(4096)
>     if len(datos) == 0:
>         # la conexion ha sido cerrada
>         ...
>
> Es decir, cuando el primero de los valores devueltos por el select 
> tiene valor pero recv no devuelve nada indica que el peer ha cerrado 
> el socket.
>
> ¿Es esto correcto?, ¿hay alguna otra forma de hacerlo?
>
> Gracias.
>




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