Socket Kommunikation will nicht nach While {}

  • 4 Antworten
  • Neuester Beitrag
Diskutiere Socket Kommunikation will nicht nach While {} im Android App Entwicklung im Bereich Betriebssysteme & Apps.
M

moelski

Neues Mitglied
Moin !

Ich versuche grade eine kleine Anwendung zu schreiben. Die soll nur von einem TCP Server Daten empfangen.

Mein Code besteht im Grunde nur aus einer Klasse und der Methode OnCreate:
Code:
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        try {
            setContentView(R.layout.main);
            
            myView1 = (TextView)findViewById(R.id.textfield1);
            
            Socket s = new Socket("xxx.xxx.xxx.xxx", 9050);
            BufferedReader input = new BufferedReader(new InputStreamReader(s.getInputStream()));
            //read line(s)
            String st = input.readLine();
            myView1.setText("Connection OK : " + st);
            
            //outgoing stream redirect to socket
            OutputStream out = s.getOutputStream();
            PrintWriter output = new PrintWriter(out);
            output.println("This comes from the Android LV :)\n\r");
            output.flush();
           
            while (true)
            {
                st = input.readLine();
                st = "Data " + st + " END";
                st = st.trim() + "\n";
                myView1.setText(st);
            }
        } catch (UnknownHostException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            myView1.setText("Connection bad : " + e.toString());
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            myView1.setText("Connection bad : " + e.toString());
        }
    }
Der Code funktioniert soweit wenn ich nicht den While Block unten nutze. Dann kriege ich eine Message vom Server und sende ein Feedback zurück. Klappt alles super.
Nehme ich die While Schleife in Betrieb dann wird mein Textfeld nicht mehr beschrieben. Die Daten werden aber empfangen. Das kann ich im Debugger sehen.

Auch ein myView1.Invalidate(); hilft nicht.

Hat jemand eine Idee warum die While Schleife da so einen Stress macht? Das ist sicher nicht sauber so, aber ich wollte nur mal checken ob das generell klappt.

Grüße Dominik
 
v Ralle v

v Ralle v

Stammgast
Pack das nicht in die onCreate Methode. Soetwas macht man nicht in dem UI Thread. Schau dir dazu am besten mal die Klasse Asynctask an. Ich bin mir ziemlich sicher, dass das dein Problem ist.
 
v Ralle v

v Ralle v

Stammgast
Naja, so erstaunlich ist das nicht wirklich... ^^ Aber schön, dass es klappt :)
 
M

moelski

Neues Mitglied
Moin !

Naja, so erstaunlich ist das nicht wirklich...
Für dich evtl nicht, aber für einen Einsteiger wie mich schon :p

Nuja, ich habs nun erstmal grundlegend am laufen mit dem AsyncTask.
 
Ähnliche Themen - Socket Kommunikation will nicht nach While {} Antworten Datum
2