Socket Programmierung

Gast #2888875
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
Persönliche Seite #2888963
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.
#2888980
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren