인터넷으로 뒤적뒤적거리면서 안드로이드폰에 클라이언트를 올리고
서버를 자바로 만들어서 하는예제들은 많아서 고생끝에 돌렸습니다.
지금되는건 pc에서 자바로 서버를 실행하고 안드로이드폰or에뮬레이터에서 pc의 아이피를 적고
접속하는 방식입니다.
문제는 이 자바로 작성된 서버를 폰에 올리고싶은데 이게 잘 안되더라구요..
즉 다 빼고 순수하게 핸드폰대 핸드폰1:1로 한쪽이 서버가되고 클라이언트가 서버가되는 핸드폰의
ip를 적고 접속해서 채팅하게 하고싶은데 좋은예제같은게 없을까요
와이파이망에서는 폰으로 서버 클라이언트 소켓통신 잘됩니다. pc에서 실행하는 서버소스를 안드로이드용으로 조금만 고치면 될듯.
public class AndroidServerSocketActivity extends Activity {
private TextView serverStatus;
public static final int SERVERPORT = 9999;
private Handler handler = new Handler();
private ServerSocket serverSocket;
private static String line;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
serverStatus = (TextView) findViewById (R.id.textview);
Thread t = new Thread(new ServerThread());
t.start();
}
public class ServerThread implements Runnable {
public void run() {
try {
serverSocket = new ServerSocket(SERVERPORT);
while (true) {
Socket client = serverSocket.accept();
Log.d("server", "ok");
handler.post(new Runnable() {
@Override
public void run() {
serverStatus.setText("Connected.");
}
});
try {
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
line = null;
while ((line = in.readLine()) != null) {
Log.d("ServerActivity", line);
handler.post(new Runnable() {
@Override
public void run() {
serverStatus.setText(line);
}
});
}
break;
} catch (Exception e) {
}
}
} catch (Exception e) {
}
}
}
@Override
protected void onStop() {
super.onStop();
try {
serverSocket.close();
} catch (IOException e) {
}
}
}
대략 이런식으로 해보시면 될듯




음...단말기 내의 ip 는 계속 유동적으로 변경되지 않나요?