2008-11-14 12 views
5

Estoy haciendo un programa que recupera cantidades decentemente grandes de datos a través de un socket python y luego se desconecta inmediatamente cuando la información ha terminado de enviarse. Pero no estoy seguro de cómo hacer estorecibiendo datos sobre un socket python

Todos los ejemplos en la web son clientes de TCP en los que tienen

while 1: 
    data = sock.recv(1024) 

pero esto crea un vistazo a bucle infinito para recibir datos a través de la toma, lo hace ¿no?

Necesito averiguar el tamaño del mensaje entrante y recorrerlo en incrementos del tamaño de la memoria intermedia para obtener el mensaje completo. Y después de que el mensaje haya terminado de enviarse, me gustaría desconectarme, aunque creo que la conexión se cerrará desde el otro extremo. Cualquier ayuda sería bueno

Gracias

Respuesta

16

Es probable que haya perdido una parte muy importante de esos examples - las líneas que siguen el "recv()" llamada:

while 1: 
    data = conn.recv(1024) 
    if not data: break 
    conn.send(data) 
conn.close() 
Cuestiones relacionadas