Hallo 
Die folgende Frage kam mir währes des Lesens des Chat Beispiels unter
http://www.java-forum.org/netzwerkprogrammierung/5507-netzwerkgrundlagen-serversocket-socket.html
auf.
Dort heißt es unter anderem:
Soweit ich das Beispiel verstanden habe, wird der ClientBody dazu benutzt einen Thread im Hintergrund des Clients laufen zu lassen, der Nachrichten vom Server (z.B. wenn jemand anderes etwas schreibt) empfängt. Dabei wird obige while Schleife solange gelesen, bis nichts mehr aus dem InputStream gelesen werden kann, d.h. null wird zurückgeliefert.
Frage:
Wird null nicht sofort erreicht, sobald keiner etwas schreibt ?
Falls nein, was passiert dann ? Der Thread wird schlafen gelegt, bis der InputStream etwas hergibt ?
Dankeschön, Mondlichtung
Die folgende Frage kam mir währes des Lesens des Chat Beispiels unter
http://www.java-forum.org/netzwerkprogrammierung/5507-netzwerkgrundlagen-serversocket-socket.html
auf.
Dort heißt es unter anderem:
Java:
class ClientBody extends Thread {
private InputStream i;
public ClientBody(InputStream i) {
this.i=i;
}
public void run() {
String buffer;
BufferedReader in;
int n;
try {
in = new BufferedReader(new InputStreamReader(i));
while ((buffer = in.readLine()) != null) {
if ((n = buffer.indexOf("users|", 0)) > -1) {
buffer = buffer.substring(n + "users|".length(), buffer.length());
buffer = buffer.replace('|', ',');
System.out.println("\n\n==>Angemeldete User: " + buffer);
} else
System.out.println("\n\n==>Eingang von " + buffer);
System.out.print("\nText eingeben -> <zielrechner> <message># ");
}
} catch (Exception e) {}
}
}
Frage:
Wird null nicht sofort erreicht, sobald keiner etwas schreibt ?
Falls nein, was passiert dann ? Der Thread wird schlafen gelegt, bis der InputStream etwas hergibt ?
Dankeschön, Mondlichtung