I'm trying to make a socket client that connects to a server on my PC.
The connection is successful but when i hit the "send"-button it goes thought the code, but the server do not receive anything.
But when i use task-killer on my phone, then the messages is sent and the server receive the message.
Here is my code for that activity
package com.pontus.dev;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.onclickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class StartServer extends Activity {
private EditText serverIP;
private Button ConnectComp;
private Button BtnSend;
private String IpAddress;
private boolean connected = false;
private Socket socket;
private DataInputStream _InPut;
private DataOutputStream _OutPut;
private Thread _listener;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.client);
serverIP = (EditText)findViewById(R.id.Server_ip);
ConnectComp = (Button)findViewById(R.id.btnConnect);
BtnSend = (Button)findViewById(R.id.btnSkicka);
BtnSend.setonclickListener(SendListner);
ConnectComp.setonclickListener(connectListener);
}
private onclickListener SendListner = new onclickListener() {
public void onclick(View v) {
sendMessage("Hej Server!");
}
};
private onclickListener connectListener = new onclickListener() {
public void onclick(View v) {
if(!connected) {
IpAddress = serverIP.getText().toString();
if(!IpAddress.equals("")) {
InetAddress serverAddr;
try {
serverAddr = InetAddress.getByName(IpAddress);
Log.d("ClientActivity","C: Ansluter...");
socket = new Socket(serverAddr, 4040);
_InPut = new DataInputStream(socket.getInputStream());
_OutPut = new DataOutputStream(socket.getOutputStream());
_listener = new Thread(new ClientThread());
Toast.makeText(getBaseContext(), "M1", 1000).show();
_listener.start();
Log.d("ClientActivity", "C: Ansluten.");
Toast.makeText(getBaseContext(), "M2", 1000).show();
} catch (Exception e) {
Log.e("ClientActivity", e.getMessage());
}
}
}
}
};
public class ClientThread implements Runnable {
public void run() {
try {
Log.d("ClientActivity", "Tråd startad");
//connected = true;
while (true) {
try {
Log.i("ClientActivity", "Väntar på meddelande från servern");
String line = _InPut.readUTF();
Log.i("ClientActivity", "Har mottaigt ett meddelande från servern: " + line);
} catch (Exception e) {
Log.e("ClientActivity", "S: Error " + e.getMessage(),e);
}
}
} catch (Exception e) {
Log.e("ClientActivity", "C: Error " + e.getMessage(), e);
}
}
}
public boolean sendMessage(String message){
try {
Log.i("ClientActivity", "Skickar meddelande till server :" + message);
_OutPut.writeBytes(message);
_OutPut.flush();
Log.i("ClientActivity", "Meddelande ska vara skickat!");
return true;
}catch (Exception e){
Log.e("ClientActivity", e.getMessage());
_listener.interrupt();
}
return false;
}
}
Hope you understand my problem.
Thanks in advance

New Topic/Question
Reply



MultiQuote




|