Client mit mehreren Aufgaben

achso ;)
wenn ich es mit der While-Schleife durchlaufen lasse, so wie es jetzt der Fall ist, bleibt der Client bei der Ausgabe "waiting..." stehen
Code:
int c = vomServer.read();
(demnach beim lesen vom Server). Der Server hingegen hat angeblich etwas gesendet, da die
Code:
zumClient.write(...)
Zeile erfolgreich ausgeführt wurde, ohne exceptions oder sontigem.
Das finde ich sehr verwunderlich, weil nach meinem Verständnis wenigstens der erste Durchlauf sauber laufen müsste.

Edit: Ok, dies lies sich einfach durch ein flush beheben -.-, jetzt gibt er die erste Ausgabe aus und bleibt dann in dieser Zeile
Code:
        while (c > -1){
            System.out.print((char) c);
            c = vomServer.read(); <----
        }
beim read hängen...
so langsam kommt man der Sache näher ;)
 
Zuletzt bearbeitet:
...und das Hauptproblem ist jetzt auch ersichtlich
(nachdem ich mir doch den Client genauer angeschaut hab :p)

Du sagtst dem Server EMPFANGE
Der schickt, bis er fertig ist (und flusht jetzt auch noch).
Und dann...?

Client wartet, wartet...und nichts passiert.
Das vomServer.read() ist nur dann fertig, wenn entweder ein Fehler aufgetreten ist
(dazu zählt auch Verbindungsabbruch) oder eben etwas empfangen wurde.
Der Server beendet die Verbindung aber nie.
Der Client sagt ihm ja auch nicht EXIT, weil er noch immer auf Daten wartet...

Mach zB. was, das zuerst die Anzahl der Byte geschickt wird, die die Gegenseite erwarten kann.

PS: Brauchst auch keinen Schlaf, oder? :D
 
Komischerweise arbeite ich Nachts besser... ;)

Aber ich versteh jetzt wenigstens was der Rechner da macht. :)
Demnach müsste ich doch auch einfach ein "Schlussbyte" setzten können oder? Also einfach ein Punkt oder anderes Sonderzeichen und dann per Abfrage sagen, dass er die Schleife verlassen soll wenn er das gelesen hat.

Fazit: genau das funktioniert!! :D Er führt beide Befehle sauber aus :).
Jetzt noch die hässliche methode stop(), durch interrupted ersetzt und alles ist wunderbar :)

Vielen Dank dir!
 
Zurück