我在这里遇到了一些麻烦,一方面我有一个服务器正在侦听端口 23000,另一方面我有一个作为客户端的 Android 应用程序。虽然使用典型的 10.2....IP 在模拟器(顺便说一下,这是为 2.3.3 构建的)中的连接似乎可以工作,但在尝试三星 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,没有防火墙,代理,完全打开,这样说......
有任何想法吗?
谢谢!亚历克斯