Beiträge von Brausebernd

    Hallo,
    ich glaube eher das mein Servercode nicht ganz ok ist.
    Habe mich jetzt nochmal belesen und habe daraufhin folgenden Clientcode erstellt:


    rein vom logischen her, müsste der Client so funktionieren.
    Wenn ich nun aber eine Verbindung zum Server herstelle, kommt folgender Fehler


    java.net.SocketException: Software caused connection abort: socket write error
    at java.net.SocketOutputStream.socketWrite0(Native Method)
    at java.net.SocketOutputStream.socketWrite(Unknown Source)
    at java.net.SocketOutputStream.write(Unknown Source)
    at sun.nio.cs.StreamEncoder.writeBytes(Unknown Source)
    at sun.nio.cs.StreamEncoder.implFlushBuffer(Unknown Source)
    at sun.nio.cs.StreamEncoder.implFlush(Unknown Source)
    at sun.nio.cs.StreamEncoder.flush(Unknown Source)
    at java.io.OutputStreamWriter.flush(Unknown Source)
    at java.io.BufferedWriter.flush(Unknown Source)
    at server.Server$1.run(Server.java:45)
    at java.util.TimerThread.mainLoop(Unknown Source)
    at java.util.TimerThread.run(Unknown Source)


    Daraufhin habe ich den Servercode wie folgt angepasst:


    Jetzt wird alle 2 Sekunden ein neuer Wert n erzeugt.
    Wenn ich mich jetzt verbinde wird der aktuelle Wert zum Client gesendet und angezeigt.
    Das Problem liegt jetzt darin das ich die Ausgebe zum Client

    Code
    output.write(x);
    output.newLine();
    output.flush();


    irgendwie in die TimerTask implementieren müsste, kann mir da irgendeiner helfen?
    Gruß
    Brausebernd

    Hallo,
    es funktioniert immer noch nicht.
    Er meckert rum das ich in der Main Netzwerk Aufgebaen durchführen will.
    Die LogCat sagt folgendes:


    08-29 07:43:57.790: D/AndroidRuntime(535): Shutting down VM
    08-29 07:43:57.790: W/dalvikvm(535): threadid=1: thread exiting with uncaught exception (group=0x40a3a1f8)
    08-29 07:43:57.800: E/AndroidRuntime(535): FATAL EXCEPTION: main
    08-29 07:43:57.800: E/AndroidRuntime(535): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.client/com.example.client.Client}: android.os.NetworkOnMainThreadException
    08-29 07:43:57.800: E/AndroidRuntime(535): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
    08-29 07:43:57.800: E/AndroidRuntime(535): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
    08-29 07:43:57.800: E/AndroidRuntime(535): at android.app.ActivityThread.access$600(ActivityThread.java:123)
    08-29 07:43:57.800: E/AndroidRuntime(535): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
    08-29 07:43:57.800: E/AndroidRuntime(535): at android.os.Handler.dispatchMessage(Handler.java:99)
    08-29 07:43:57.800: E/AndroidRuntime(535): at android.os.Looper.loop(Looper.java:137)
    08-29 07:43:57.800: E/AndroidRuntime(535): at android.app.ActivityThread.main(ActivityThread.java:4424)
    08-29 07:43:57.800: E/AndroidRuntime(535): at java.lang.reflect.Method.invokeNative(Native Method)
    08-29 07:43:57.800: E/AndroidRuntime(535): at java.lang.reflect.Method.invoke(Method.java:511)
    08-29 07:43:57.800: E/AndroidRuntime(535): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
    08-29 07:43:57.800: E/AndroidRuntime(535): at dalvik.system.NativeStart.main(Native Method)
    08-29 07:43:57.800: E/AndroidRuntime(535): Caused by: android.os.NetworkOnMainThreadException
    08-29 07:43:57.800: E/AndroidRuntime(535): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1099)
    08-29 07:43:57.800: E/AndroidRuntime(535): at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84)
    08-29 07:43:57.800: E/AndroidRuntime(535): at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
    08-29 07:43:57.800: E/AndroidRuntime(535): at libcore.io.IoBridge.connect(IoBridge.java:112)
    08-29 07:43:57.800: E/AndroidRuntime(535): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
    08-29 07:43:57.800: E/AndroidRuntime(535): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
    08-29 07:43:57.800: E/AndroidRuntime(535): at java.net.Socket.startupSocket(Socket.java:566)
    08-29 07:43:57.800: E/AndroidRuntime(535): at java.net.Socket.tryAllAddresses(Socket.java:127)
    08-29 07:43:57.800: E/AndroidRuntime(535): at java.net.Socket.<init>(Socket.java:177)
    08-29 07:43:57.800: E/AndroidRuntime(535): at java.net.Socket.<init>(Socket.java:149)
    08-29 07:43:57.800: E/AndroidRuntime(535): at com.example.client.Client$Verbindung.<init>(Client.java:53)
    08-29 07:43:57.800: E/AndroidRuntime(535): at com.example.client.Client.onCreate(Client.java:35)
    08-29 07:43:57.800: E/AndroidRuntime(535): at android.app.Activity.performCreate(Activity.java:4465)
    08-29 07:43:57.800: E/AndroidRuntime(535): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
    08-29 07:43:57.800: E/AndroidRuntime(535): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
    08-29 07:43:57.800: E/AndroidRuntime(535): ... 11 more


    kann man das alles nicht irgendwie total einfach lösen?
    ich will doch nur alle 2 Sekunden Daten vom Server empfangen. :(
    Gruß
    Brausebernd

    Hallo,
    ich habe noch ein kleines Problem mit dem Code von block_.


    und zwar habe an dieser Stelle

    Code
    public Verbindung() 
    		{
    	
    				socket = new Socket("192.168.2.3", 4444);
    				input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
    		
    		}


    die Meldung "Unhandle exception type IOExceptin"
    Dieses Problem sollte nicht mehr bestehen wenn ich mit Hilfe

    Code
    Verbindung verbindung = new Verbindung();
    verbindung.start();


    eine Instanz von Verbindung erstelle und diese starte.
    Meine Frage ist nun wo ich das in meinem Code einfügen muss.
    Danke
    Gruß
    Brausebernd

    Hallo,
    vielen Dank für die Antwort.
    Eigentlich ist der Clientcode unwichtig.
    Der Server soll nur wechselnde int Werte an den Client senden und der Client soll diese anzeigen.


    Der Client Code würde so aussehen.


    Der Servercode sieht jetzt so aus:



    Der Server verbindet sich mit dem Client sobald die Anwendung auf dem Client gestartet wird.
    Anschließend wird durch die Zeile

    Code
    System.out.println(x);

    in der Console der Wert 1,2,3,4,5,1,2,... usw ausgegeben.
    Frage:
    der Wert müsste eigentlich ja durch die Zeile darüber

    Code
    output.write(x);

    an den Client gesendet werden oder?
    Also müsste ich ja nur meinen Clientcode ändern oder?
    Gruß Brausebernd

    Hallo,

    Wird das System.out.println("Nachricht vom Client: " + nachricht); Ausgeben?

    ja es wir ausgegeben. sobald der Client eine Verbindung aufbaut.


    kommt beim Client was an?

    Ja da kommt was an und zwar die Zahl wo sich das Programm grad "befindet".
    Danach ist aber "Ruhe" es soll aber alle 2 Sekunden der neue Wert ausgegeben werden.


    Hier mal der Client Code:


    Müsste ich den Handler alle 2 Sekunden "refreshen"?
    oder bin ich da auf dem falschen Weg?


    Gruß
    Brausebernd

    Nach langem probieren habe ich jetzt eine Lösung.
    Funktioniert auch prinzipiell.
    Betonung liegt auf prinzipiell. ->Problem HorizontalScrollView funktioniert nicht flüssig!
    hier mal der Code:


    Hat vieleicht jemand nen Verbesserungsvorschlag?

    Hallo
    also nochmal zum Verständnis. Ich habe ein Hintergrundbild auf meiner Oberfläche zu liegen.
    Möchte aber nur einen Auschnitt davon sehen und mit den fingern das Bild verschieben können.
    Irgendwie muss das doch in der .xml möglich sein.
    Gruß
    Brausebernd

    Hallo,
    ich möchte gern wissen wie ich die Variable n an meinen client übergeben kann.
    ich habe einen Server der alle 2 Sekunden einen neuen Integerwert erzeugt.
    Dieser Wert soll an den Client über eine Socketverbindung gesendet werden, nur wie?


    Hier mal mein Code:


    Was zur Zeit passiert iost, wenn ich die Anwendung starte die Ausgabe, "Server gestartet!" und "0" bekomme.
    Die variable n wird alle 2 Sekunden mit dem Wert 1,2,3,4,5,1,2... usw. belegt.
    Dieser Wert soll alle an den Client gesendet werden.


    Gruß
    Brausebernd

    Hallo,


    ich hätte da nochmal 2 Fragen. Zu meinem Problem:
    Ich möchte mir gern ein Image in den Hintergrund meiner Anwendung legen. Darüber sollen (durchsichtig) Elemente wie TextView und Buttons angeordnet sein. Nun soll das Image nicht auf die Größe meines Tablets zugeschnitten sein sondern verschiebbar sein und auch rein und raus zommen sollte möglich sein.
    (Bsp. wäre Angry Birds).
    Desweiteren will ich Buttons/TextViews aus der Activity die Position über dem Image zuordnenen. Praktisch sich selbst bewegende Objekte.
    Ich hoffe mein Problem ist klar und jemand kann mir helfen.


    Gruß
    Brausebernd

    Hallo,
    ich komm grad irgendwie nicht weiter.
    Ich habe 5Integer werte, nun möchte ich alle 2 Sekunden einen anderen Wert ausgeben.
    Sind die 5 Werrte durch soll es wieder von vorne losgehen.
    Integerwerte: 1,2,3,4,5
    Ausgabe:1,2,3,4,5,1,2,3,4,5,1,2...usw.
    ich weiß das ist banal aber irgendwie komm ich einfach nicht drauf.


    Vllt. hat ja einer von euch mal 3 min. Zeit und kann mein problem beheben.


    Gruß
    Brausebernd

    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

    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.