Probleme beim Lesen aus Socket

S

Schause

Neues Mitglied
0
Hallo!

Habe Probleme beim Lesen eines Strings aus einer Socketverbindung, das Programm schmiert einfach ab.
Schreiben geht jedoch ohne Probleme. Das Android prog ist der Client, das andere ein stinknormaler Echoserver in Java.

Hier mal der Code:

Android:
Code:
socket = new Socket(ip, port);
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            
writer.write("test1234");
writer.newLine();
String reply = reader.readLine(); //Hier schmiert es ab
reader.close();
writer.close();
socket.close();
und hier der server:
Code:
while (true) {

    Socket clientSocket = serverSocket.accept();
    BufferedReader in = new BufferedReader(new    InputStreamReader(clientSocket.getInputStream()));
    BufferedWriter out = new BufferedWriter(new OutputStreamWriter(clientSocket.getOutputStream())); 

    String s = in.readLine();
    out.write(s);
    out.newLine();
    out.close();
    in.close();
    clientSocket.close();
}
Was mich stutzig macht ist dass es mit einem Client den ich mir in normalem Java geschrieben hab funktioniert, doch das Android Prog stürzt immer ab (bzw. "reagiert nicht"). Der Java Client ist aber exakt gleich geschrieben wie das Android dings.

Hoffe, ihr könnt mir dabei helfen.

Lg Schause
 
Du solltest das Problem zunächst etwas genauer lokalisieren.
Was sagt denn der Stack-Trace Deiner Exception?
 
Oh tut mir leid.
Ja, hab eigentlich alles mit try/catch versehen und es sollte der stacktrace ausgegeben werden.
Der Server wirft mir ne NullpointerException bei in.readLine(); aber das liegt am Fehler des Android Programms, denn wenn das Android-prog einen Befehl sendet, ohne auf eine Antwort zu warten, gehts.

Das Android Programm bleibt einfach stecken, dazu muss ich aber sagen dass ich eingefleischter Netbeans-User bin und mich mit dem Debuggen bei Eclipse noch gar nicht gut auskenne (hab mich leider erst einen Tag mit Eclipse eingearbeitet)
Hab in dem ddms chat log oder wie das heißt nachgesehen, aber da tat sich nix. Und als ich es versucht hab zu debuggen, hab ich nen Breakpoint gesetzt und bin auf debuggen gegangen, aber da ist das Prog einfach normal angelaufen.
Aber trotzdem sollte ne Exception via alert ausgegeben werden falls eine geworfen wird.... naja aber der Java Client geht ohne Probleme, das is ja das was ich ned verstehe, der is genau gleich geschrieben.

Naja hoffe dass ich ein bisschen genauer lokalisieren konnte ;-)

lg schause
 
Schause schrieb:
Oh tut mir leid.
Ja, hab eigentlich alles mit try/catch versehen und es sollte der stacktrace ausgegeben werden.
Der Server wirft mir ne NullpointerException bei in.readLine(); aber das liegt am Fehler des Android Programms, denn wenn das Android-prog einen Befehl sendet, ohne auf eine Antwort zu warten, gehts.
Du solltest schon mal den StackTrace hier zeigen, sonst kann
Dir keiner weiterhelfen. java.lang.NullPointerException und nur
eine einzige Zeile Ausgabe gibt's normalerweise nie. Dafür gibt
es ja die Ausgabe des ganzen Aufrufbaums...
 
Hello
Sorry war längere zeit nicht im Land ^^
Habe die Lösung gefunden, wenn man statt einem BufferedWriter einen PrintWriter benutzt, dann gehts.

Lg
 
Zuletzt bearbeitet:
hast du mal

Code:
bufferedWriter.flush();

vor dem auslesen probiert?
 
Also bei ner NullPointerException bei readline würde ich eher vermuten das keine Daten zum lesen auf den Socket vorhanden sind. evl. könnte da folgendes helfen:
Code:
 do { message.add(in.readLine()); } while (in.ready());
 
Zuletzt bearbeitet:

Ähnliche Themen

netfreak
  • netfreak
Antworten
10
Aufrufe
456
netfreak
netfreak
R
  • Robby1950
2
Antworten
23
Aufrufe
1.013
Robby1950
R
S
  • Sempervivum
Antworten
2
Aufrufe
607
Sempervivum
S
Zurück
Oben Unten