지금 소켓통신을 공부하는 중입니다.
강의 보면서 따라해봤는데 에뮬레이터에서는 정상 작동하는데 디바이스에서는 작동되지않습니다.
이유를 알수 있을까요?
public class MainActivity extends Activity {
Handler hd;
TextView text;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button requestButton = (Button) findViewById(R.id.requestVutton);
text = (TextView) findViewById(R.id.text01);
requestButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
RequestThread thread = new RequestThread();
thread.start();
}
});
hd = new Handler();
}
class RequestThread extends Thread {
public void run() {
request();
}
}
private void request() {
try {
Socket socket = new Socket("192.168.0.83", 5001); // 서버를 생성함.
showEditText("클라이언트 주소:192.168.0.83 , 5001");
ObjectOutputStream outStream = new ObjectOutputStream(
socket.getOutputStream());
outStream.writeUTF("하이");
outStream.flush();
showEditText("하이 서버");
ObjectInputStream insStream = new ObjectInputStream(
socket.getInputStream());
String inString = insStream.readUTF();
showEditText("서버로 부터 받은 데이터 : " + inString);
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
private void showEditText(String msg) {
final String inMsg = msg;
hd.post(new Runnable() {
@Override
public void run() {
text.append(inMsg + "\n");
}
});
}
}