Socket Kommunikation will nicht nach While {}

M

moelski

Neues Mitglied
1
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
 
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.
 
Naja, so erstaunlich ist das nicht wirklich... ^^ Aber schön, dass es klappt :)
 
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

5
Antworten
22
Aufrufe
1.367
590239
5
M
Antworten
2
Aufrufe
888
maksimilian
M
SaniMatthias
Antworten
19
Aufrufe
871
swa00
swa00
Zurück
Oben Unten