[Python-de] Dateien ueber Sockets uebertragen

Hartmut Goebel h.goebel at crazy-compilers.com
Mit Mar 31 12:36:27 CEST 2004


Alexander 'boesi' Bösecke wrote:

Das Probelm dürfte da stecken:

>     data = sockobj.recv(1024)

Es wird gewartet, bis 1024 Bytes angekommen sind. Wenn keine mehr 
kommen, wird halt ewig gewartet. Nachdem Du ja die Filesize kennst, 
mache folgendes:

   data = sockobj.recv(min(1024, file_size-recvBytes))

(Kann man sicher optimieren.)

Zusätzlich solltest Du einen Timeout einbauen, siehe entsprechende 
Rezepte, bzw. bei Python 2.3 socket.setdefaulttimeout()

-- 
Regards
Hartmut Goebel

| Hartmut Goebel               | We build the crazy compilers |
| h.goebel at crazy-compilers.com | Compiler Manufacturer        |