0 Bytes per send() senden
-
Ich möchte damit auf Clientseite einen Test machen, der schauen soll, ob der Server (Socket) nicht unerwartet getrennt wurde. Allerdings funktioniert das nicht, da send() immer 0 zurückgibt, egal ob der Server noch verbunden ist oder nicht.
send(socket,0,0,0);
So habe ichs versucht...
-
Was spricht denn dagegen, 1 byte zu senden ?

außerdem kann man doch timeouts setzen und so feststellen ob die verbindung abgebrochen wurde
-
Wenn ich 1 Byte sende, kommt leider auch 1 Byte an... Das soll vermieden werden, da mein recv() nur sinnvolle Daten erhalten soll (es sei denn ich kann ein Zeichen schicken, welches den Puffer nciht füllt! gibts sowas?).
Ich weiß auch nicht, wie man ein bestimmes recv() anwählen soll, falls man einen Thread erstellen möchte, der diesen TestByte empfangen soll... Da hätte ich dann nämlich simultan 2 recv()'s. Das Eine recv() wartet im Thread auf das TestByte und das Andere erwartet sinnvolle Bytes.
-
Ich arbeite ja mit timeout... Mein recv() wartet einige Sekunden, bis das timeout abläuft. Dann möchte ich diesen Test durchführen, ob der Server wirklich nicht mehr verbunden ist oder doch...
-
-
Du willst also nichts senden und erwartest eine Antwort? Frag dich mal, ob das funktionieren kann.
-
_Luckie schrieb:
Du willst also nichts senden und erwartest eine Antwort? Frag dich mal, ob das funktionieren kann.
Er will ja was senden, nur der Inhalt ist leer, wie ein leeres Paket.
-
Was in einem Stream-Protokoll ala TCP/IP natürlich nicht geht.
Es sei denn er legt selbst ein Message-Protokoll drüber.
Was er aber anscheinend nicht will.=> geht nicht
-
hustbaer schrieb:
Es sei denn er legt selbst ein Message-Protokoll drüber.
Das sei ihm auch schwer angeraten, egal was er tun will.