私は非常に単純で基本的なJavaクライアント/サーバープログラムを使用しています。これは正常に機能します。しかし、現在Androidクライアントを作成しようとしていますが、Androidクライアントからサーバーに接続できませんでした。私は通常のクライアントに使用するのとほぼ同じコードをAndroidネットワークコードに使用しています。私のAndroidコードは単純で、onCreateからこのスレッドを開始するだけです。
private int serverPort = 8889;
private String serverIP = "192.168.5.230";
private Socket socket = null;
private Thread clientThread = new Thread("ClientThread") {
@Override
public void run() {
try {
socket = new Socket();
socket.connect(new InetSocketAddress(serverIP, serverPort), 1000);
DataInputStream din = new DataInputStream( socket.getInputStream());
DataOutputStream dout = new DataOutputStream(socket.getOutputStream());
while (true) {
String message = din.readUTF();
setPicture("picture1");
}
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};
ポートは、サーバーが実行されている正しいポートであり、IPアドレスも同様です(ローカルホストを使用できないことがわかっているため、ifconfigから取得しました)。同じポートとIPアドレスで通常のPCクライアントを実行すると、接続が確立されます。しかし、Androidデバイスでこのコードを実行すると、接続しようとするとソケットがタイムアウトします。
誰かが私が間違っているところについて何か提案がありますか?