제가 지금 안드로이드 끼리 tcp 통신하는 것을 하려고 인터넷 뒤적이며 하고있는데
자기폰에서야 당연이 되지만 다른 폰을 서버로 하고 연결하려고 하면
connect failed: EHOSTUNREACH (No route to host) 에러로 안되고 있어요.
adbreverse tcp:포트 tcp:포트 로 포트를 열어야 한다는 글을 봐서 이것도 해보고
안드로이드에 핑을 쏴보라는 글도 봐서 해봤지만 호스트에 연결할수 없습니다. 만 나오고있어요
같은 네트워크 망인건 와이파이 이름이 같은것도 확인 했어요.
소스코드는 현재 블로그 분의 소스로 해보고 있고요. 다시 만들고 이것저것 해봐도 안되네요
Collections.synchronizedMap(clientsMap);
try {
serverSocket = new ServerSocket(9999);
new Thread(new Runnable() {
@Override
public void run() {
while (true) {
/** XXX 01. 첫번째. 서버가 할일 분담. 계속 접속받는것. */
Log.v("", "서버 대기중...");
try {
socket = serverSocket.accept();
} catch (IOException e) {
e.printStackTrace();
}
Log.v("", socket.getInetAddress() + "에서 접속했습니다.");
msg = socket.getInetAddress() + "에서 접속했습니다.\n";
handler.sendEmptyMessage(SERVER_TEXT_UPDATE);
new Thread(new Runnable() {
private DataInputStream in;
private DataOutputStream out;
private String nick;
@Override
public void run() {
try {
out = new DataOutputStream(socket.getOutputStream());
in = new DataInputStream(socket.getInputStream());
nick = in.readUTF();
addClient(nick, out);
} catch (IOException e) {
e.printStackTrace();
}
try {// 계속 듣기만!!
while (in != null) {
msg = in.readUTF();
sendMessage(msg);
handler.sendEmptyMessage(SERVER_TEXT_UPDATE);
}
} catch (IOException e) {
// 사용접속종료시 여기서 에러 발생. 그럼나간거에요.. 여기서 리무브 클라이언트 처리 해줍니다.
removeClient(nick);
}
}
}).start();
}
}
}).start();
clientSocket = new Socket(joinIpText.getText().toString(), 9999);
Log.v("", "클라이언트 : 서버 연결됨.");
clientOut = new DataOutputStream(clientSocket.getOutputStream());
clientIn = new DataInputStream(clientSocket.getInputStream());
//접속하자마자 닉네임 전송하면. 서버가 이걸 닉네임으로 인식을 하고서 맵에 집어넣겠지요?
clientOut.writeUTF(nickName);
Log.v("", "클라이언트 : 메시지 전송완료");
while (clientIn != null) {
try {
clientMsg = clientIn.readUTF();
} catch (IOException e) {
e.printStackTrace();
}
handler.sendEmptyMessage(CLIENT_TEXT_UPDATE);