T
Tastenmüsli
Neues Mitglied
- 0
Hallo liebe Gemeinde,
ich habe folgendes Problem:
Ich möchte einen einfachen EchoServer ansprechen. Dies funktioniert auch in reinem Java, doch der Umstieg auf Android bereitet mir ein wenig Probleme.
Ich schicke einen String mittels PrintWriter an den Server. (funktioniert)
Doch ich bekomme die Antwort nicht ausgelesen. Der Socket schließt sich scheinbar schon vorher.
Getrennt von einander funktioniert beides einwandfrei, nur halt nicht wenn sie hintereinander nutze.
Hier einmal nur der Code vom Thread:
Und auch einmal den Log:
ich habe folgendes Problem:
Ich möchte einen einfachen EchoServer ansprechen. Dies funktioniert auch in reinem Java, doch der Umstieg auf Android bereitet mir ein wenig Probleme.
Ich schicke einen String mittels PrintWriter an den Server. (funktioniert)
Doch ich bekomme die Antwort nicht ausgelesen. Der Socket schließt sich scheinbar schon vorher.
Getrennt von einander funktioniert beides einwandfrei, nur halt nicht wenn sie hintereinander nutze.
Hier einmal nur der Code vom Thread:
Code:
package com.server.test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import android.util.Log;
public class Connection extends Thread {
Socket so;
PrintWriter pw;
BufferedReader br;
String eingang;
String ausgang;
public Connection(){
eingang = "";
ausgang = "";
}
@Override
public void run(){
try {
so = new Socket("192.168.0.10", 2000);
} catch (UnknownHostException e) {
Log.d("Fehler", "UnknownHostException");
} catch (IOException e) {
Log.d("Fehler", "IOException");
}
if(so == null){
Log.d("Fehler", "keine Verbindung");
}else{
Log.d("OK", "Verbindung erfolgreich");
}
try {
pw = new PrintWriter(so.getOutputStream(),true);
pw.write(ausgang);
pw.close();
} catch (IOException e) {
Log.d("Fehler", "PrintWriter IOException");
}
try {
br = new BufferedReader(new InputStreamReader(so.getInputStream()));
Log.d("MSG", br.readLine());
} catch (IOException e) {
e.printStackTrace();
}
Log.d("Thread", "ENDE");
}
public void setAusgang(String ausgang){
this.ausgang = ausgang;
}
}
Und auch einmal den Log:
Code:
06-05 22:54:49.464: W/System.err(10941): java.net.SocketException: Socket is closed
06-05 22:54:49.464: W/System.err(10941): at java.net.PlainSocketImpl.checkNotClosed(PlainSocketImpl.java:134)
06-05 22:54:49.464: W/System.err(10941): at java.net.PlainSocketImpl.getInputStream(PlainSocketImpl.java:216)
06-05 22:54:49.464: W/System.err(10941): at java.net.Socket.getInputStream(Socket.java:343)
06-05 22:54:49.464: W/System.err(10941): at com.server.test.Connection.run(Connection.java:55)