
Hallo allesamt, ich habe da nochmal eine Frage zum Socket Modul. Mit socket.sendall() (tcp/ip) sende ich in einer Schleife Datenblöcke, insgesamt sind es ca. 1.5 GB. Auf Empfänger-Seite habe ich einen blockierenden conn.recv() Aufruf, ebenfalls in einer Schleife. Wie ist das mit den Puffern, müsste nicht sendall() blockieren wenn der Peer nicht hinterherkommt ? Bei mir speichert der Empfänger nur ein Bruchteil der Daten, obwohl alles vom Sender verschickt wurde. Oder anders gesagt: Mein Empfänger-Socket "verschluckt" Daten. Wie kann das sein ? Danke und Gruß, Alexander

Hi Alexander, das ist sehr schwer zu beantworten ohne den Code zu sehen. Wenn Du tatsächlich das implementiert hast, was Du beschreibst, sollte es funktionieren aber der Teufel steckt bekanntlich im Detail. Beste Grüße, Gerald Am 17.05.2013 um 20:35 schrieb Alexander Langer <alexander.langer@address.invalid>:
Hallo allesamt,
ich habe da nochmal eine Frage zum Socket Modul.
Mit socket.sendall() (tcp/ip) sende ich in einer Schleife Datenblöcke, insgesamt sind es ca. 1.5 GB.
Auf Empfänger-Seite habe ich einen blockierenden conn.recv() Aufruf, ebenfalls in einer Schleife.
Wie ist das mit den Puffern, müsste nicht sendall() blockieren wenn der Peer nicht hinterherkommt ?
Bei mir speichert der Empfänger nur ein Bruchteil der Daten, obwohl alles vom Sender verschickt wurde.
Oder anders gesagt: Mein Empfänger-Socket "verschluckt" Daten. Wie kann das sein ?
Danke und Gruß,
Alexander
_______________________________________________ python-de maillist - python-de@python.org http://mail.python.org/mailman/listinfo/python-de

Am 17.05.2013 20:35 schrieb Alexander Langer:
Hallo allesamt,
ich habe da nochmal eine Frage zum Socket Modul.
Mit socket.sendall() (tcp/ip) sende ich in einer Schleife Datenblöcke, insgesamt sind es ca. 1.5 GB.
Sicher, daß Du TCP verwendest? Dann sollte das Beschrieben *eigentlich* nicht vorkommen. Bei UDP hingegen (theoretisch) schon, da wird alles, was "zu viel" ist, verworfen.
Auf Empfänger-Seite habe ich einen blockierenden conn.recv() Aufruf, ebenfalls in einer Schleife.
Wie ist das mit den Puffern, müsste nicht sendall() blockieren wenn der Peer nicht hinterherkommt ?
Bei mir speichert der Empfänger nur ein Bruchteil der Daten, obwohl alles vom Sender verschickt wurde.
Am besten zeigst Du uns mal den Code, dann kann man mehr sagen. (Und bitte kein Leerzeichen vor Satzzeichen.) Thomas
participants (3)
-
Alexander Langer
-
Gerald Klix
-
Thomas Rachel