Sockets in der Eclipse VM

  • Antworten:1
Ben V.
  • Forum-Beiträge: 4

13.08.2011, 20:25:58 via Website

Hi!

Hab ein sehr eigenartiges Problem zu dem ich bis jetzt keine Antwort gefunden hab:

->Rufe aus meiner Activity einen AsyncTask auf, was auch ohne Probleme funktioniert(Der AsyncTask ist direkt in der Activity als Unterklasse)

->Schließlich kommt der Compiler an diese Stelle: (tv=textview)

try {
tv.append("before socket\n");
cs = new Socket("10.1.1.1", 23);
tv.append("after socket");
os = cs.getOutputStream();
pw = new PrintWriter(os, false);
br = new BufferedReader(new InputStreamReader(cs.getInputStream()));

} catch (UnknownHostException e) {
e.printStackTrace();
tv.append("unknown host");

} catch (IOException e) {
tv.append("IO Exception");
e.printStackTrace();

}


Das ganze hat im "native" Java ohne irgendein Problem funktioniert und ich bekomme auch in der VM keinerlei Fehlermeldung oder Exception, "before socket" wird noch ausgegeben, aber danach bleibt der Compiler anscheinend beim aufmachen des Sockets hängen (die 2. Nachricht wird nichtmehr ausgegeben) -> wie gesagt keine Fehlermeldung oä., wäre für jeden Tipp dankbar!

Antworten
Ben V.
  • Forum-Beiträge: 4

13.08.2011, 22:27:12 via Website

Okaaay, mittlerweile bin ich zumindest ein wenig gescheiter :D

-> jedesmal wenn ich versuche den Socket zu erstellen(absichtlich mit einer Adresse die nicht vergeben ist) schieße ich damit meinen Router komplett ab
->Ich bekomme keine "unknown Host" Exception von der VM obwohl es den Host nicht gibt
-> Anscheinend verhält sich der Aufruf so als ob er in einer Endlosschleife wäre dh. er probierts immer und immer wieder
(was den Router irgendwann in die Knie zwingt)

Mal schauen mal schauen :sleep:

Jemand eine Idee?^^


Edit: Wenn der Socket auf eine Adresse zeigt wenn die tatsächlich einen Telnet Port offen hat gibt er jetzt auch die Nachricht nach dem erstellen des Sockets aus, dafür gibts dann eine Threadexception, aber zumindest tut sich was^^

08-13 20:44:05.657: ERROR/AndroidRuntime(304): Caused by: android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.

— geändert am 13.08.2011, 22:45:52

Antworten