nul
20-09-2006, 18:53
Ich sitz schon seit einiger Zeit an ner App und was mir nocht wirklich dazu fehlt ist das Handling zur Netzwerkschnitstelle.
Das baue ich gerade ein und bin da auf ein Problem gestossen!
Und zwar erzeuge ich mit
this.socket = new Socket( this.hostOrAddress, this.port );
die Verbindung zum Server, mit dem ich mich verbinden muss.
Dann erzeuge ich mit
this.writer = new PrintStream( this.socket.getOutputStream() );
InputStreamReader streamReader = new InputStreamReader( this.socket.getInputStream() );
BufferedReader reader = new BufferedReader( streamReader );
die Streams zum lesen und schreiben und fange dann in einem Thread sofort an zu lesen.
while ( true ) {
if ( ( line = buffer.readLine() ) != null ) {
....
}
}
und an der Stelle blockiert ploetzlich mein programm :confused:
Er faengt auch an zu lesen, liest die ersten zeilen ein die versendet werden wenn man eine Verbindung zum Server aufbaut (aus dem was er erhaelt macht er bis noch nichts, der Code ist zwar vorhanden, aber das was er empfaengt wird nicht als gueltige nachricht fuer mein Programm ausgewertet und deshalt verschmissen).
Das lesen laeuft wie schon gesag in einem Thread ab, deshalb versteh ich nicht genau wieso er blockiert.
Sofort nach dem starten des Threads sollte eine weitere Methode eine Nachricht an den Server schicken, aber diese wird nicht mal aufgerufen ....
Fuer mich ist das ganze ein ziemliches raetsel warum das ganze blockiert! Hat jemand vielleicht eine Idee woran das noch liegen koennte?
lg
nul
Das baue ich gerade ein und bin da auf ein Problem gestossen!
Und zwar erzeuge ich mit
this.socket = new Socket( this.hostOrAddress, this.port );
die Verbindung zum Server, mit dem ich mich verbinden muss.
Dann erzeuge ich mit
this.writer = new PrintStream( this.socket.getOutputStream() );
InputStreamReader streamReader = new InputStreamReader( this.socket.getInputStream() );
BufferedReader reader = new BufferedReader( streamReader );
die Streams zum lesen und schreiben und fange dann in einem Thread sofort an zu lesen.
while ( true ) {
if ( ( line = buffer.readLine() ) != null ) {
....
}
}
und an der Stelle blockiert ploetzlich mein programm :confused:
Er faengt auch an zu lesen, liest die ersten zeilen ein die versendet werden wenn man eine Verbindung zum Server aufbaut (aus dem was er erhaelt macht er bis noch nichts, der Code ist zwar vorhanden, aber das was er empfaengt wird nicht als gueltige nachricht fuer mein Programm ausgewertet und deshalt verschmissen).
Das lesen laeuft wie schon gesag in einem Thread ab, deshalb versteh ich nicht genau wieso er blockiert.
Sofort nach dem starten des Threads sollte eine weitere Methode eine Nachricht an den Server schicken, aber diese wird nicht mal aufgerufen ....
Fuer mich ist das ganze ein ziemliches raetsel warum das ganze blockiert! Hat jemand vielleicht eine Idee woran das noch liegen koennte?
lg
nul