[Python-de] Dateien ueber Sockets uebertragen

Holger Duerer python-lists at duerer-sinclair.de
Mit Apr 7 18:19:35 CEST 2004


>>>>> "Alexander" == Alexander 'boesi' Bösecke <boesi.josi at gmx.net> writes:


    >> Hmmm.  Rein aus dem Gedächnis heraus, würde ich sagen, daß man
    >> besser self.sendall(sendData) sagen sollte.  Falls sendData zu
    >> gross wird, wird Dir send() nicht alles schicken.

    Alexander> Hab mir mal die Doku dazu angesehen.  send und sendall
    Alexander> unterscheiden sich lediglich in der Fehlerbehandlung.
    Alexander> send gibt die Zahl der gesendeten Bytes zurueck, im
    Alexander> Normalfall ist das halt len(sendData). sendall dagegen
    Alexander> loest eine exception aus, wenn nicht alle Bytes
    Alexander> gesendet werden konnten, es ist aber nicht moeglich zu
    Alexander> erfahren wieviele Bytes gesendet worden.

Also, auch auf die Gefahr hin, hier als Person dazustehen, die
unbedingt das letzt Wort haben muß:

Ich weiß nicht, in welcher Doku Du das nachgelesen hast, aber wenn Du
es nicht falschverstanden hast, solltest Du sie wegwerfen, da da Mist
drinsteht.  pydoc socket sagt, daß sendall send aufruft, bis alle
Daten gesendet wurden.  Nur im Fehlerfall bekommst Du ne Exception und
weißt nicht, wieviel gesendet wurde.

Nach betrachten des Quellkodes halte ich diese Interpretation der
Dinge für die korrekte und Deine für die inkorrekte Version.

   [...]

   Holger