ここで少し問題があります。一方ではポート 23000 でリッスンしているサーバーがあり、もう一方ではクライアントとして機能する Android アプリがあります。接続は、通常の 10.2....IP を使用してエミュレーター (ちなみにこれは 2.3.3 用にビルドされています) で機能しているように見えますが、Samsung Galaxy Tab で試してみると、次のように有名になり続けます。
「アドレスファミリはプロトコル例外でサポートされていません」
最終的に、コードは次のようになります。
InetSocketAddress inetAddress;
//this is done to keep backward compatibility prior 2.0.4 release
if(host == null || host.equals("")) {
//check if defaultIp is also empty
if (defaultIPAddress == null || defaultIPAddress.equals(""))
throw new UnknownHostException();
//otherwise start listening on defaultIp
else
{
inetAddress = new InetSocketAddress(defaultIPAddress, port);
}
}
//start listening on host
else
{
inetAddress = new InetSocketAddress(host, port);
}
// open the socket channel
this.channel = SocketChannel.open(inetAddress);
this.channel.configureBlocking(false);
this.channel.socket().setTcpNoDelay(true);
でソケットを開こうとすると失敗します
this.channel = SocketChannel.open(inetAddress);
言うまでもなく、以前に述べたように、マニフェストに必要な権限があり、これはエミュレーターで正常に機能しています。
その上、これはネットワークの問題ではありません。両方のマシンは、手元にあるルーターを使用して作成されたワイヤレスWifiに接続されており、ファイアウォール、プロキシ、完全に開いていません...
何か案は?
ありがとう!アレックス