1. Mitglieder surfen ohne Werbung auf Android-Hilfe.de! ✔ Jetzt kostenlos Mitglied in unserer Community werden.
  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
Probleme mit sharedPreferences Android App Entwicklung 08.12.2018
2 Probleme mit Android Studio Android App Entwicklung 24.09.2018
Wert beim Start der App aus SharedPreferences auslesen Android App Entwicklung 10.09.2018
Fehler beim Download bestimmter Webseiten mit httpGet Android App Entwicklung 19.04.2018
Classen Methoden ,deren Aufruf und meine Anfänger Probleme. HILFE !!! Android App Entwicklung 18.04.2018
Warum Stürtzt meine App ab? (Beim Öffnen von content_3) Android App Entwicklung 27.02.2018
Du betrachtest das Thema "Probleme beim Lesen aus Socket" im Forum "Android App Entwicklung",
  1. Android-Hilfe.de verwendet Cookies um Inhalte zu personalisieren und dir den bestmöglichen Service zu gewährleisten. Wenn du auf der Seite weitersurfst stimmst du der Cookie-Nutzung zu.  Ich stimme zu.