Socket: 3 client nachrichten kommen als 1ne nachricht beim server an
-
hallo,
ich habe einen Socket-Server und Client und ein kleines problem.
der Client sendet 3 sachen hintereinander:
send(s,"name Name",strlen("name Name"),0); send(s,"status 1",strlen("status 1"),0); send(s,"version 4.0",strlen("version 4.0"),0);diese kommen bei dem server allerdings als 1ne nachricht an!
kann ich nach einem send irgendwie eine funktion aufrufen die dem server sagt
"nachricht ende" oder "nächstes send vom client" ?!ich hoffe ihr versteht was ich meine

danke...
-
Setze mal ein Sleep(3000) dazwischen. Ich könnte mir vorstellen das die Nachrichten vom BS gepuffert oder gesammelt werden und dann als gesamte Nachricht losgeschickt werden.
-
Das ist so "by-design". Ich würde halt ein vernünftiges App-Layer Protokoll verwenden (z.B: zuerst die Länge des Strings (4 bytes) mitsenden).
-
@Jochen Kalmbach
hallo, meinst du so das der server dann überprüft wo die eine message endet und die nächste beginnt?
-
-
K.Wuestkamp schrieb:
@Jochen Kalmbach
hallo, meinst du so das der server dann überprüft wo die eine message endet und die nächste beginnt?ja genau so ist es
-
ein send() korrespondiert nicht immer zu einem recv() das betriebssystem kann das alles machen wie es will...stell es dir nicht wie nachrichten oder pakete sondern wie einen strom von daten vor