while-Schleife funktioniert nicht bei Nachrichtempfang von Server

MK234

Aktives Mitglied
Hallo,

in meinem folgenden Programmausschnitt soll, nachdem eine Nachricht an einen Server geschickt wird, eine Antwort vom Server entgegen genommen werden, durch eine while-Schleife. Die while-Schleife befindet sich in einer run-Methode.

Code:
try {
	int zahl1 = x;
	int zahl2 = y;
	toServer.write(("move(x=" +y+";y="+x+")\r\n"));
	toServer.flush();							
	ini = "";
	line = "";						
							
	while((line = fromServer.readLine()) != null) {				
		ini = ini + line + newline;	
					
	}
	
		
							
	System.out.println("Jetzt kommt " +ini);

Zwar könnte ich die Zeichen von ini innerhalb der While-Schleife ausdrucken, aber nach dem verlassen
der Schleife hängt das Programm, d.h. der Befehl "System.out.println("Jetzt kommt " +ini)" wird nicht mehr ausgeführt.

Wenn ich statt der while-Schleife, eine for-Schleife benutze wie z.B.

for(int i=0; i <= 4; i++) {
line = fromServer.readLine();
ini = ini + line + newline;
}

funktioniert das Programm. Jedoch ist diese for-Schleife nicht geeignet, weil ich nicht weiß wie viele Zeilen der Server jedesmal sendet.

Wenn ich stattdessen die for-Schleife wie folgt verwende:

for(line = ""; (line = fromServer.readLine()) != null;) {
ini = ini + line + newline;
System.out.println(line);
}

werden die Zeilen zwar innerhalb der for-Schleife ausgedruckt, aber nach verlassen der Schleife, hängt das Programm wieder.

Kennt jemand dieses Problem?
 
N

nillehammer

Gast
Ich glaube, dass Programm hängt, weil die Schleife nie verlassen wird. Das liegt daran, dass der Server nie mit etwas antwortet, dass als null interpretiert wird. Also entweder dafür sorgen, dass er das tut oder sich eine spezielle Zeichenfolge überlegen, die als Ende interpretiert wird und dann darauf testen.
 
T

TheRealSpikee

Gast
Egal von was für einem InputStream du liest ... NULL wird nur zurückgegeben wenn du versuchst von einem GESCHLOSSENEN Stream zu lesen ...
Die while() wird also erst nach closen des Streams verlassen. Das du das reading in einen Thread gesteckt hast ist schon mal gar nicht so verkehrt ...
Das Problem was du noch hast : du willst unendlich lange Daten vom Server lesen ... diese aber erst nach Beenden der Verbindung verarbeiten ... das ist falsch ! Die Verarbeitung der Daten muss innerhalb der while() stattfinden *meinet wegen über weitere Threads* ... aber nicht außerhalb da du bei einer "normalen" Verbindung erst nach Beendigung an diesen Punkt kommst.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Chat Programm. Verständnisfrage while-Schleife Netzwerkprogrammierung 7
J while-Schleife / Abbruchbed. beim Einlesen eines Streams Netzwerkprogrammierung 4
TheJavaKid while(true) umgehen Netzwerkprogrammierung 4
S while-schleifen prob Netzwerkprogrammierung 6
x46 Byte-Array per for-Schleife schicken Netzwerkprogrammierung 1
K Socket byte Schleife beendet nicht Netzwerkprogrammierung 9
D Strings per Schleife zum Client senden Netzwerkprogrammierung 4
S Socket Thread in Schleife Netzwerkprogrammierung 4
Y server mit endlosse schleife beenden Netzwerkprogrammierung 6
JavaDevOp Socket Status von UDP-Port prüfen (PortUnreachableException funktioniert nicht?) Netzwerkprogrammierung 32
B Multicast-Nachrichten-Empfang funktioniert nicht Netzwerkprogrammierung 5
S BufferedStream funktioniert nicht immer Netzwerkprogrammierung 7
G UDP Packet empfangen funktioniert nicht. Netzwerkprogrammierung 16
Dann07 Proxy funktioniert nicht so wie gewünscht! Netzwerkprogrammierung 18
M Textchat Funktioniert nur halb Netzwerkprogrammierung 2
H Einfacher Server funktioniert nicht Netzwerkprogrammierung 1
N Test Servlet funktioniert nicht Netzwerkprogrammierung 11
J FTP Upload über Proxy funktioniert nicht Netzwerkprogrammierung 1
C Mini Client-Server-Anwendung funktioniert nicht Netzwerkprogrammierung 8
KingSquizzi3 Website parsen mit Hilfe von jsoup funktioniert nicht Netzwerkprogrammierung 3
V TCP Client funktioniert auf Emulator aber nicht auf Smartphone Netzwerkprogrammierung 5
N RMI "RMI über Lan funktioniert nicht" & "RMI-Server im Lan scannen" Netzwerkprogrammierung 13
G Mail senden funktioniert nicht mit SSL Netzwerkprogrammierung 7
L IText mit Servlets, funktioniert nicht Netzwerkprogrammierung 0
D TCP Socket funktioniert nicht richtig Netzwerkprogrammierung 3
L Email versenden mit Java funktioniert nicht, Fehlermeldungen: MessagingException & SocketException Netzwerkprogrammierung 10
C Portscanner funktioniert nicht! Netzwerkprogrammierung 8
K Chatprogramm - Server funktioniert nicht Netzwerkprogrammierung 5
G FTP FTP-Client funktioniert nicht bei Modem-Verbindungen Netzwerkprogrammierung 8
D JNLP über Webstart funktioniert nicht... Netzwerkprogrammierung 2
M HTTP File Upload mit Prozessbar Funktioniert nicht. Netzwerkprogrammierung 8
J FTP FTP funktioniert nicht. Netzwerkprogrammierung 5
R Client funktioniert nicht Netzwerkprogrammierung 2
L Socket Chat funktioniert nicht Netzwerkprogrammierung 2
D ...class.getResourceAsStream("/meine.properties") funktioniert nicht über RMI? Netzwerkprogrammierung 3
S RMI Methodenaufruf funktioniert nur lokal Netzwerkprogrammierung 11
C Java Chat funktioniert nicht richtig Netzwerkprogrammierung 6
V Quelltaxt einer Website auslesen funktioniert nicht Netzwerkprogrammierung 2
A RMI RMI Methodenaufruf funktioniert nur spontan Netzwerkprogrammierung 5
S RMI RMI-Applet kommunikation funktioniert nicht Netzwerkprogrammierung 8
D FTP Pfadangabe für ftp-upload funktioniert nicht Netzwerkprogrammierung 5
A Socket UnknownHostException funktioniert nicht! Netzwerkprogrammierung 3
B Socket Daten empfangen funktioniert nicht richtig - wo liegt der Fehler? Netzwerkprogrammierung 7
M chat funktioniert nicht (Connection refused: connect) Netzwerkprogrammierung 3
R Java-Chat-Applet funktioniert nur in Eclipse Netzwerkprogrammierung 3
T RMI - Client Zugriff auf Server funktioniert nicht Netzwerkprogrammierung 5
M RMI, cast funktioniert nich Netzwerkprogrammierung 2
P Bilder: FTP-Upload funktioniert nicht richtig Netzwerkprogrammierung 2
G Datein versenden funktioniert nicht ! Netzwerkprogrammierung 19
W RMI funktioniert nur wenn ich im selben Eclipse Projekt bin Netzwerkprogrammierung 3
S OutputStreamWriter funktioniert nicht wie ich will Netzwerkprogrammierung 2
M serialisierung funktioniert nur nach neuer instanzierung Netzwerkprogrammierung 3
G Google-Suche funktioniert nicht Netzwerkprogrammierung 6
S Server - Telnet funktioniert, Server - Client nicht Netzwerkprogrammierung 3
F SimpleFTP funktioniert nicht Netzwerkprogrammierung 6
N UDP zwischen Java und C++ funktioniert nicht. Netzwerkprogrammierung 4
L JavaMail: Versenden von mails funktioniert nicht Netzwerkprogrammierung 7

Ähnliche Java Themen

Neue Themen


Oben