Entwickler-Ecke
Internet / Netzwerk - Socket - Datenverlust
Akni - Di 22.10.02 10:21
Titel: Socket - Datenverlust
Hi Leute,
ich habe folgendes Problem: ich schicke Daten mit SendBuf über eine Socket-Verbindung. Die Verbindung funktioniert, aber manchmal gibt ReceiveBuf -1 zurück und die Daten verloren gehen. Beim nächsten Receive kriege ich Daten ganz normal wieder.
Wie kann ich diesen Datenverlust vermeiden?
Vielen Dank im voraus,
Akni
O'rallY - Di 22.10.02 14:11
Könntest du n bissl Code posten?
noeppel - Do 24.10.02 09:36
Wenn ReceiveBuf -1 zurückgibt, dann heißt dass das keine Daten gelesen wurden. Wenn aber SendBuf -1 zurückgibt, dann heißt dass das keine Daten gesendet werden konnten, weil der interne Buffer des Winsock-Systems voll ist(was hier höchstwahrscheinlich der Fall ist). Versuch doch mal
jede SendBuf-Anweisung durch folgende zu ersetzen:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| . . . while SendBuf = -1 do Application.ProcessMessages; . . . |
-> Diese Variante ist sehr aggressiv und versucht sehr häufig hintereinander die Daten in dem Buffer zu platzieren. Aus diesem Grund wäre es ratsam (vor allem bei langsamen Verbindungen) das Programm noch zusätzlich warten zu lassen.
mfg noeppel
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!