Thread IO::Socket IO::Select Bei Receive klappt Timeout nicht
(1 answers)
Opened by roco at 2012-10-24 10:55
Hallo, ich habe einen Client geschrieben, der nach einer Eingabe verlangt und diese per Socket an einen Server schickt. Der Server antwortet mit
einem kurzen Satz und der ihm geschickten Eingabe. Ich mochte dass der Client nur 2 Sekunden auf die Antwort vom Server wartet und danch nach der naechsten Eingabe verlangt. Dazu hab ich folgendes Skript: Code: (dl
)
1 #!/usr/bin/perl Wenn der Server direkt antwortet sieht der Verlauf so aus: Eingabe bitte: erste Eingabe Serverantwort: Habe folgendes empfangen: erste Eingabe Eingabe bitte: zweite Eingabe Serverantwort: Habe folgendes empfangen: zweite Eingabe Eingabe bitte: dritte Eingabe Serverantwort: Habe folgendes empfangen: dritte Eingabe Eingabe bitte: quit Wenn ich den Server immer erst nach 4 Sekunden antworten lasse, dann bricht der receive zwar ab, aber die Antwort wird auch spaeter vom Server entgegengenommen, was alles durcheinander bringt: Eingabe bitte: erste Zeile, Server sleep 4 sek. Eingabe bitte: zweite Zeile, Server sleep 4 sek. Serverantwort: Habe folgendes empfangen: erste Zeile, Server sleep 4 sek. Eingabe bitte: dritte Zeile, Server sleep 4 sek. Serverantwort: Habe folgendes empfangen: zweite Zeile, Server sleep 4 sek. Die Antwort auf die erste Zeile kommt nachdem die zweite eingegeben wurde, weil auf die Antwort vom Server nicht gewartet wurde. Wie schaffe ich es dass die Antwort vom Server auf die erste Zeile ignoriert wird? Ich hab hier in allen Foren mit Socket & Select Problemfällen den gestrigen Tag rumgelesen, aber keine Antwort gefunden. Last edited: 2012-10-24 11:08:22 +0200 (CEST) |