현재 컴퓨터에서 sever를 만들고 핸드폰에서 접속하는 어플 예제를 받아서
실행해보고 제가 만들고 있는 어플에 응용해서 적용하려 하고 있는데
서버와 연결이 안되네요 ㅠ ㅜ
어디를 고쳐야 문제가 사라질까요 ㅠㅠ
어플의 소스
첫번째 화면은 별거 없고 두번째 액티비티의 소스 입니다. ㅠ 에러는 없는데
통신이 안되네요 ㅠ
package com.example.butnex;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import android.util.Log;
import android.view.View.OnClickListener;
import android.widget.Toast;
public class remote_activity extends Activity {
private String return_msg;
Button up_btn;//각 버튼을 생성해주는 명령어
Button left_btn;
Button right_btn;
Button down_btn;
Button disconnect_btn;
ImageView imagefield; //상단의 이미지를 출력하기 위한 명령어
TextView check_txt;//버튼이 잘눌리는지 확인해주는 명령어
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.lay2);
up_btn = (Button)findViewById(R.id.lay2_up_btn);//각 버튼과 이미지 필드의 주소를 GUI와 연결해주는 명령어
left_btn = (Button)findViewById(R.id.lay2_left_btn);
right_btn = (Button)findViewById(R.id.lay2_right_btn);
down_btn = (Button)findViewById(R.id.lay2_down_btn);
disconnect_btn = (Button)findViewById(R.id.lay2_disconnect_btn);
imagefield = (ImageView)findViewById(R.id.lay2_imege_field);
check_txt = (TextView)findViewById(R.id.lay2_check);
/*
Intent intent = getIntent();
AlertDialog.Builder alert = new AlertDialog.Builder(remote_activity.this);//전달해준 아이피 주소와 포트번호를 다이어로그로 띄우는 명령어
alert.setPositiveButton("확인", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss(); //닫기
}
});
alert.setMessage("IP 주소 : " + intent.getStringExtra("ip_data") + "\nPort 번호 : " + intent.getStringExtra("port_data"));
alert.show();
*/
up_btn.setOnClickListener(new View.OnClickListener() {//각 버튼을 눌렀을때 동작하는 명령어
public void onClick(View v) {
TCPclient tp = new TCPclient("up");
tp.run();
Toast t = Toast.makeText(getApplicationContext(),
"up", Toast.LENGTH_LONG);
t.show();
check_txt.setText(return_msg);
}
});
left_btn.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
TCPclient tp = new TCPclient("left");
tp.run();
Toast t = Toast.makeText(getApplicationContext(),
"left", Toast.LENGTH_LONG);
t.show();
check_txt.setText(return_msg);
}
});
right_btn.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
TCPclient tp = new TCPclient("right");
tp.run();
Toast t = Toast.makeText(getApplicationContext(),
"right", Toast.LENGTH_LONG);
t.show();
check_txt.setText(return_msg);
}
});
down_btn.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
TCPclient tp = new TCPclient("down");
tp.run();
Toast t = Toast.makeText(getApplicationContext(),
"down", Toast.LENGTH_LONG);
t.show();
check_txt.setText(return_msg);
}
});
disconnect_btn.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(remote_activity.this, MainActivity.class);
startActivity(intent);
}
});
}
private class TCPclient implements Runnable {
private static final String serverIP = "192.168.0.13"; // ex:
// 192.168.0.100
private static final int serverPort = 5000; // ex: 5555
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);
}
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}