Ich habe eine einfache Android-App, die einige Daten an einen Server senden soll ich habe über Socket mit einer bestimmten IP-und Port-Nummer.Meine einfache Android-App sendet keine Daten an einen Socket
Auf meinem onCreate()
ich verbinde mich mit dem Server. Dieser Teil funktioniert:
// connect to the server
clientThread = new ClientThread();
thread = new Thread(clientThread);
thread.start();
Aber die sendMessage()
keine Meldungen an die Buchse schicken und ich erhalte nichts auf meinem Server. Die Funktion zeigt nicht einmal die Protokollnachricht an, so dass ich nicht weiß, was passiert. Was ist das Problem? Wie man es repariert?
//TODO send data
clientThread.sendMessage(100);
Hier ist die Buchse Thread-Klasse:
class myApp extends Activity{
//....
ClientThread clientThread;
Thread thread;
//....
class ClientThread implements Runnable {
private Socket socket;
private BufferedReader input;
@Override
public void run() {
InetAddress serverAddr = null;
try {
serverAddr = InetAddress.getByName(SERVER_IP);
} catch (UnknownHostException e) {
e.printStackTrace();
}
try {
socket = new Socket(serverAddr, SERVERPORT);
Log.i("Hello: Connected","Hello: Connected");
} catch (IOException e) {
e.printStackTrace();
}
}
void sendMessage(int data) {
try {
if (null != socket) {
PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),
true);
out.println(data);
Log.i("Hello Message sent","Hello sent: "+data+" to: "+ SERVER_IP+":"+SERVERPORT);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
Mein serverseitige erhalten (Java Server):
public void run() {
System.out.println("Got a new user!");
InputStream inp;
try {
/* Get Data From Client */
inp = socket.getInputStream();
int data= inp.read();
System.out.println(address+" "+ data);
if (data!=0) {
scoreboard.b1.y+=1;
if (scoreboard.b1.y==scoreboard.MaxValue) {
System.out.println("HELLLOOOOOOO");
scoreboard.updateValue();
}
scoreboard.repaint();
}
} catch (IOException e) {
return;
}
String line;
}
Denke nicht, schrei es! –
Es ist seltsam. Es sendet die Nachricht nur einmal. Und die Daten sind keine '100'! Der Server erhält '49'. Ich habe den Servercode hinzugefügt. –
BTW, der 'autoflush' wurde auf" True "gesetzt, also war es vorher OK. Das Problem könnte woanders sein. –