PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [C++] 8KB Problem mit TCP/IP-Sockets


[MM]
29.06.2005, 17:36
Hallo, ich benutze den Borland C++ Builder und habe eine Clinet/Server-Anwendung geschreiben, die über TCP/IP-Sockets kommuniziert.

Wenn die Daten, die ich versende kleiner sind als die 8kb geht es auch wunderbar, jedoch alles darüber wird aufgeteilt, was auch nicht weiter schlim wäre, wenn die Teile wenigstens zueinander passen würden.

Wenn ich >8kb am Stück sende werden 8192 Bytes beim Client richtig empfangen, jedoch bei der Nachricht, welche danach empfangen wird (wo der Rest drin sein müsste) stehen nur Nullen am Anfang in der Nachricht drin.

Und wenn ich nur Blöcke von je 7000 Bytes versende empfängt der Client auch 8192 Bytes (ich denke durch die Zeitverzögerung werden die zusammengefasst (?)), wobei jedoch nach dem Byte 6999 alles bis zum Byte 8191 nur Nullen sind.

Könnte mir da Jemand helfen?

MM


xDannyOx
30.06.2005, 09:45
Hi,

ein ähnliches Problem hatte ich auch mit Sockets. Die Lösung, die ich dann gefunden hab war, dass ich nicht mehr 8Kb (8192 Zeichen) empfangen hab, sondern ich hab den Lesebuffer auf 16Kb (16384 Zeichen) erhöht. Von da an hat es wunderbar funktioniert, auch bei Daten, die größer als 16 Kb waren.

Gruß

[MM]
30.06.2005, 19:34
Das hört sich gut an, bringt mich jedoch zu einer neuen Frage:
Wie kann ich die Buffergröße einstellen?
Ich meine, ich jabe in meinem Socket-Objekt keine Eigenschaft/Methode, mit der ich das festlegen könnte. Und die Hilfe gibt da auch nicht viel her.

MM