Einfaches TCP Client/Server problem!

  • 1 Antworten
  • Letztes Antwortdatum
N

Nyrk

Neues Mitglied
2
Hallo,

ich versuche mit folgendem Code eine Nachricht an ein Script zu senden und eine Antwort zu empfangen:

Code:
[SIZE=2]Socket socket = 
[/SIZE][LEFT][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]new[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] Socket([/SIZE][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"192.168.178.25"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2],5005);[/SIZE]
[LEFT][SIZE=2]DataOutputStream DOS = [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]new[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] DataOutputStream(socket.getOutputStream());[/SIZE]
[SIZE=2]DataInputStream DIS = [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]new[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] DataInputStream(socket.getInputStream());[/SIZE]
[SIZE=2]DOS.writeUTF("Dies ist ein Test");[/SIZE]
[SIZE=2]String text = DIS.readUTF().toString();[/SIZE]
[SIZE=2]Toast.[I]makeText[/I](getApplicationContext(), text, [U]0[/U]).show();[/SIZE][/LEFT]
[SIZE=2]socket.close();[/SIZE]

Das Senden an das PYthon Script klappt ohne Probleme, doch es kommt keine Antwort an. Erst wenn ich den Connect Abbreche kommt als Fehlermeldung Connection refused (logisch)...was ist an meinem Code falsch?
[/LEFT]
 
Eine Vermutung von mir wäre, dass nicht genug Daten ankommen bevor du mit readUTF auf den Stream zugreifst.
Soll heißen du schickst was raus und direkt danach liest du den stream, wenn bis dahin aber keine Daten angekommen sind dürfte der Stream leer sein.

Versuch doch mal statt dem DataInputStream ein BufferedReader zu nutzen.
Und dann dort mit readLine() eine genaze Zeile zu lesen (dein Script sollte natürlich auch Zeilenweise Text schicken).

Wenn ich mir die API zu readUTF durchlese
DataInput (Java Platform SE 6)

versteh ich das so, dass damit Java primitives gelesen werden können.
Ich vermute einfach, dass dein python Script die Daten evtl auch "falsch" schickt.
 
Zurück
Oben Unten