doch noch ein kleines Problem bei einer TCP Verbindung

  • Doch noch nen kleines Problem







    Hallo,


    Also ich hab mir jetzt ne neue Anwendung zum TCP- Datenaustausch gebastelt.


    Nun habe ich wieder ein Problem.


    Ich müsste die Verbindung vom Client zum Server in einem seperaten Thread ausführen, leider bekomm ich das irgendwie nich hin.




    Client Code:


    Server-Code:


    Mainfest.xml:


    Logcat:


    08-10 15:08:44.500: D/OpenGLRenderer(26478 :( Flushing caches (mode 0)
    08-10 15:08:49.700: D/AndroidRuntime(26478 :( Shutting down VM

    08-10 15:08:49.700: W/dalvikvm(26478 :( threadid=1: thread exiting with uncaught exception (group=0x40a401f8 )
    08-10 15:08:49.710: E/AndroidRuntime(26478 :( FATAL EXCEPTION: main
    08-10 15:08:49.710: E/AndroidRuntime(26478 :( java.lang.IllegalStateException: Could not execute method of the activity
    08-10 15:08:49.710: E/AndroidRuntime(26478 :( at android.view.View$1.onClick(View.java:3044)
    08-10 15:08:49.710: E/AndroidRuntime(26478 :( at android.view.View.performClick(View.java:3511)
    08-10 15:08:49.710: E/AndroidRuntime(26478 :( at android.view.View$PerformClick.run(View.java:14110)
    08-10 15:08:49.710: E/AndroidRuntime(26478 :( at android.os.Handler.handleCallback(Handler.java:605)
    08-10 15:08:49.710: E/AndroidRuntime(26478 :( at android.os.Handler.dispatchMessage(Handler.java:92)
    08-10 15:08:49.710: E/AndroidRuntime(26478 :( at android.os.Looper.loop(Looper.java:137)
    08-10 15:08:49.710: E/AndroidRuntime(26478 :( at android.app.ActivityThread.main(ActivityThread.java:4424)
    08-10 15:08:49.710: E/AndroidRuntime(26478 :( at java.lang.reflect.Method.invokeNative(Native Method)
    08-10 15:08:49.710: E/AndroidRuntime(26478 :( at java.lang.reflect.Method.invoke(Method.java:511)
    08-10 15:08:49.710: E/AndroidRuntime(26478 :( at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
    08-10 15:08:49.710: E/AndroidRuntime(26478 :( at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
    08-10 15:08:49.710: E/AndroidRuntime(26478 :( at dalvik.system.NativeStart.main(Native Method)
    08-10 15:08:49.710: E/AndroidRuntime(26478 :( Caused by: java.lang.reflect.InvocationTargetException
    08-10 15:08:49.710: E/AndroidRuntime(26478 :( at java.lang.reflect.Method.invokeNative(Native Method)
    08-10 15:08:49.710: E/AndroidRuntime(26478 :( at java.lang.reflect.Method.invoke(Method.java:511)
    08-10 15:08:49.710: E/AndroidRuntime(26478 :( at android.view.View$1.onClick(View.java:3039)
    08-10 15:08:49.710: E/AndroidRuntime(26478 :( ... 11 more
    08-10 15:08:49.710: E/AndroidRuntime(26478 :( Caused by: java.lang.NullPointerException
    08-10 15:08:49.710: E/AndroidRuntime(26478 :( at com.example.client.MainActivity.onSendClick(MainActivity.java:31)
    08-10 15:08:49.710: E/AndroidRuntime(26478 :( ... 14 more
    08-10 15:08:51.030: I/Process(26478 :( Sending signal. PID: 26478 SIG: 9
    08-10 15:09:11.300: D/AndroidRuntime(26669): Shutting down VM
    08-10 15:09:11.300: W/dalvikvm(26669): threadid=1: thread exiting with uncaught exception (group=0x40a401f8 )
    08-10 15:09:11.310: E/AndroidRuntime(26669): FATAL EXCEPTION: main
    08-10 15:09:11.310: E/AndroidRuntime(26669): java.lang.IllegalStateException: Could not execute method of the activity
    08-10 15:09:11.310: E/AndroidRuntime(26669): at android.view.View$1.onClick(View.java:3044)
    08-10 15:09:11.310: E/AndroidRuntime(26669): at android.view.View.performClick(View.java:3511)
    08-10 15:09:11.310: E/AndroidRuntime(26669): at android.view.View$PerformClick.run(View.java:14110)
    08-10 15:09:11.310: E/AndroidRuntime(26669): at android.os.Handler.handleCallback(Handler.java:605)
    08-10 15:09:11.310: E/AndroidRuntime(26669): at android.os.Handler.dispatchMessage(Handler.java:92)
    08-10 15:09:11.310: E/AndroidRuntime(26669): at android.os.Looper.loop(Looper.java:137)
    08-10 15:09:11.310: E/AndroidRuntime(26669): at android.app.ActivityThread.main(ActivityThread.java:4424)
    08-10 15:09:11.310: E/AndroidRuntime(26669): at java.lang.reflect.Method.invokeNative(Native Method)
    08-10 15:09:11.310: E/AndroidRuntime(26669): at java.lang.reflect.Method.invoke(Method.java:511)
    08-10 15:09:11.310: E/AndroidRuntime(26669): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
    08-10 15:09:11.310: E/AndroidRuntime(26669): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
    08-10 15:09:11.310: E/AndroidRuntime(26669): at dalvik.system.NativeStart.main(Native Method)
    08-10 15:09:11.310: E/AndroidRuntime(26669): Caused by: java.lang.reflect.InvocationTargetException
    08-10 15:09:11.310: E/AndroidRuntime(26669): at java.lang.reflect.Method.invokeNative(Native Method)
    08-10 15:09:11.310: E/AndroidRuntime(26669): at java.lang.reflect.Method.invoke(Method.java:511)
    08-10 15:09:11.310: E/AndroidRuntime(26669): at android.view.View$1.onClick(View.java:3039)
    08-10 15:09:11.310: E/AndroidRuntime(26669): ... 11 more
    08-10 15:09:11.310: E/AndroidRuntime(26669): Caused by: java.lang.NullPointerException
    08-10 15:09:11.310: E/AndroidRuntime(26669): at com.example.client.MainActivity.onSendClick(MainActivity.java:31


    Ich würde mich freuen wenn mir jemand helfen könnte.




    P.S. wenn das Programm laufen sollte möchte ich ein Image übertragen.
    Vllt. hat ja einer nen Beispiel bzw. ne Seite mit nem Tutorial für mich.




    Danke!




    Gruß


    Klaus


    Edit: Vielleicht könnte ja jemand einfach mal den Code in Eclipse laufen lassen. Ich bin echt am verzweifeln, krieg einfach keinen funktionierenden Code hin. Ist wahrscheinlich nur ne kleinigkeit aber ich hab da irgendwie nen völligen Blackout! Danke.

  • Hi Brausebernd,


    was steht in dieser Zeile:

    Code
    com.example.client.MainActivity.onSendClick(MainActivity.java:31)


    ähm müsste nicht eigentlich die Berechtigung für Internet innerhalb des Manifest gesetzt sein oder wo läuft der Server?
    also das mit der Berechtigung wird aber wahrscheinlich den Fehler nicht lösen ist mir nur beim Durchsehen aufgefallen.


    Mfg Titus

  • Hallo Titus,
    danke für die schnelle Antwort und für die Interesse an meinem Problem... ;)
    In der Zeile steht folgendes:

    Code
    client.send(msg);


    kurze Beschreibung:
    der Server läuft auf einem PC
    der Client ist mein Tablet
    Verbindungsaufbau über WLAN


    Mit der Internetberechtigung hast du natürlich Recht!
    Behebt aber das Problem, wie erwartet, auch nicht... ;(


    geändertes Manifest:



    LogCat sagt das selbe wie oben.


    Vielleicht ist mein gewähltes Beispiel auch zu komplex.
    Kennt jemand ein vernünftiges Tutorial oder einen Beispielcode für Eine TCP Server Client Verbindung in der ein kleines Image übertragen wird?
    Die Verbindung scheitert wahrscheinlich an der Programmierung eines seperaten Threads.


    Ich bin leider nicht der Typ der aus Büchern lernt, am besten für mich ist halt anhand von Beispielen zu verstehen.


    Gruß
    Brausebernd

  • ok nur um sicher zu gehen erst klickst du auf den onConnect Button und dann auf den onSend Button?


    Weil um ehrlich zu sein sieht es so aus als wäre ChatClient client nicht keine richtige Instanz. Soll heißen du versuchst die send Methode auf ein null Objekt auszuführen.


    Ok was noch sein könnte:
    wenn du in deine LogCat schaust wird der Konstruktor von ChatClient(ip, port); richtig ausgeführt?


    weil innerhalb der send Methode nur der DataOutputStream streamOut ist und dieser wird ja immer Konstruktor gesetzt.


    Mfg Titus

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!