데스크탑서버와 안드로이드단말기 클라이언트 간의
tcp/ip 소켓 통신 질문 입니다.
많이 나와있는 소스를 가지고 애뮬에서 실행시켰을 때는 아무 문제 없이 작동이 되는데요.
단말기로 옮기니 서버와 단말기 간의 통신이 되질않습니다.
단말기는 클라이언트 소스는 다음과 같습니다.
단말기로 실행기 바꿔 주어야 하는 부분이 있나요 :)
제가 초보라...^^;;; 답변 부탁드립니다.
public class Client extends Activity {
/** Called when the activity is first created. */
private String return_msg;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final EditText et = (EditText)findViewById(R.id.EditText01);
Button btn = (Button)findViewById(R.id.Button01);
final TextView tv = (TextView)findViewById(R.id.TextView01);
btn.setOnClickListener(new OnClickListener(){
public void onClick(View v){
if(et.getText().toString() != null || !et.getText().toString().equals("")){
TCPclient tp = new TCPclient(et.getText().toString());
tp.run();
//et.getText().toString() 보내는 문자열 !
Toast t = Toast.makeText(getApplicationContext(), return_msg, Toast.LENGTH_LONG);
t.show();
tv.setText(return_msg);
}
}
});
}
private class TCPclient implements Runnable {
private static final String serverIP = "서버 아이피";
private static final int serverPort = 4444;
private String msg;
//private String return_msg;
public TCPclient(String _msg){
this.msg = _msg;
}
@Override
public void run() {
// TODO Auto-generated method stub
try {
InetAddress serverAddr = InetAddress.getByName(serverIP);
Log.d("TCP", "C: Connecting...");
Socket socket = new Socket(serverAddr, serverPort);
try {
Log.d("TCP", "C: Sending: '" + msg + "'");
PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);
out.println(msg);
Log.d("TCP", "C: Sent.");
Log.d("TCP", "C: Done.");
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
return_msg = in.readLine();
Log.d("TCP", "C: Server send to me this message -->" + return_msg);
} catch(Exception e) {
Log.e("TCP", "C: Error1", e);
} finally {
socket.close();
}
} catch (Exception e) {
Log.e("TCP", "C: Error2", e);
}
}
}
}