Cerrando sockets, close_wait

Oswaldo Hernández listas en soft-com.es
Mar Mayo 22 16:19:23 CEST 2007


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.

-- 
*****************************************
Oswaldo Hernández
oswaldo (@) soft-com (.) es
*****************************************




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