1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. Schause, 26.07.2009 #1
    Schause

    Schause Threadstarter Neuer Benutzer

    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
     
  2. Lemonbaby, 27.07.2009 #2
    Lemonbaby

    Lemonbaby Neuer Benutzer

    Du solltest das Problem zunächst etwas genauer lokalisieren.
    Was sagt denn der Stack-Trace Deiner Exception?
     
  3. Schause, 27.07.2009 #3
    Schause

    Schause Threadstarter Neuer Benutzer

    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
     
  4. Lemonbaby, 27.07.2009 #4
    Lemonbaby

    Lemonbaby Neuer Benutzer

    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...
     
  5. Schause, 30.08.2009 #5
    Schause

    Schause Threadstarter Neuer Benutzer

    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: 30.08.2009
  6. lxorg, 13.09.2009 #6
    lxorg

    lxorg Junior Mitglied

    hast du mal

    Code:
    bufferedWriter.flush();
    vor dem auslesen probiert?
     
  7. Scogit, 13.09.2009 #7
    Scogit

    Scogit Android-Hilfe.de Mitglied

    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: 13.09.2009
Die Seite wird geladen...
Ähnliche Themen Forum Datum
[OFFEN] Widget zeigt keine ImageView an. Android App Entwicklung Montag um 09:39 Uhr
[ERLEDIGT] (Verständnis-)Probleme mit SwipeRefreshLayout Android App Entwicklung 12.08.2017
[ERLEDIGT] Probleme mit Bluetooth / Beam Ordner Android App Entwicklung 25.07.2017
[ERLEDIGT] Probleme mit AdMob Android App Entwicklung 19.07.2017
[ERLEDIGT] Probleme mit Service unter Android N Android App Entwicklung 16.07.2017
[OFFEN] Probleme in den Speicher schreiben Android App Entwicklung 13.07.2017
[ERLEDIGT] Kleine Probleme mit einer App Android App Entwicklung 14.06.2017
[OFFEN] Probleme mit Action Floating Button Android App Entwicklung 27.05.2017
[ERLEDIGT] WebView Probleme Android App Entwicklung 19.05.2017
[ERLEDIGT] Probleme mit Wear Modul Android App Entwicklung 01.05.2017
Du betrachtest das Thema "Probleme beim Lesen aus Socket" im Forum "Android App Entwicklung",