ServerSocket
Android デバイスを使用してポートでリッスンしようとしています。同じネットワーク上のコンピューターを使用して、WiFi 経由でこのポートに接続できるようにしたいと考えています。
ポートにバインドしても例外は発生しませんが、netstat を確認すると次のように表示されます。
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 (null):4040 (null):* LISTEN
SocketInetAddress
およびInetAddress.getByName
. _ 何も機能していないようです。
同じ WiFi 内のコンピューターからポートに接続しようとすると (netcat と Java の両方を試しましたSocket.connect()
)、Wireshark で確認できるのは ARP 要求だけです。
Who has [phone's LAN address]? Tell [computer LAN address].
この要求は、タイムアウトになるまで繰り返されます。
コンピューターに ServerSocket を設定し、電話からそのポートに接続するという逆の方法を試しましたが、非常にうまく機能します。
私のテスト用電話は、カスタム ROM を搭載した Samsung Spica i5700 です。
何か案は?
編集: コードは次のように単純です。
ServerSocket server = new ServerSocket();
server.setReuseAddr(true);
server.setTimeout(0);
server.bind(new InetSocketAddress(4040));
Socket client = null;
while((client = server.accept()) == null);
// Connected
enter code here
enter code here