Forum: PC-Programmierung Socket Programmierung


von Java: Socket Input Stream (Gast)


Lesenswert?

Hallo zusammen!
Ich habe ein kleines Problem bei der Ausgabe auf einem Client. Ich 
verwende dafür folgende Zeilen code:
1
while((fromServer = in.readLine()) != null){
2
       System.out.println(fromServer);
3
}

Mein Problem ist, wenn jetzt nur eine Zeile Text vom Server 
zurückgeliefert wird, bleibt die ganze Schleife hängen und das ist sehr 
ärgerlich. Hab schon diverse Abbruchbedingungen versucht, aber nichts 
hat geholfen. Wäre über jede Hilfe dankbar.

LG

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Java: Socket Input Stream schrieb:
> Mein Problem ist, wenn jetzt nur eine Zeile Text vom Server
> zurückgeliefert wird, bleibt die ganze Schleife hängen

Aber nur wenn der Server die Verbindung offen hält... Ohne weitere Infos 
was du vorhast kann man nicht sinnvoll antworten, i.A. lagert man 
blocking I/O in einen eigenen Thread aus.

von Udo S. (urschmitt)


Lesenswert?

Ein Socket hat meines Wissens kein ReadLine().
Ich gehe mal davon aus, daß du einen BufferedReader auf den Socket 
InputStream instanziiert hast.
Du kriegst was du willst. Wenn du eine ganze Zeile lesen willst dann 
blockiert die Software bis die Zeile da ist (mit Umbruch).
Du könntest auch selbst characterweise lesen, dann hättest du die 
(vorhandenen) Daten schneller.

Wie Läubi gesagt hat ist es oft Sinnvoll das Lesen in einen eigenen 
Thread auszulagern.
Noch als Tipp: Dir ist der Unterschied zwischen einen Stream (binär) und 
einem Reader (character) bekannt? Wenn nein schau dir das genau an.

von Java: Socket Input Stream (Gast)


Lesenswert?

Danke für die raschen Antworten. Das mit dem Auslagern in einen eigenen 
Thread hat mir schon geholfen!

LG

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.