【发布时间】:2012-06-15 09:48:23
【问题描述】:
我在这里遇到了一些麻烦,一方面我有一个服务器正在侦听端口 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);
不用说,我的 Manifest 中有所需的权限,如前所述,这在模拟器中运行良好。
此外,这不是网络问题,两台机器都连接到使用我手头的路由器创建的无线 Wifi,没有防火墙,代理,完全开放,这样说......
有什么想法吗?
谢谢! 亚历克斯
【问题讨论】:
-
嗯,我在 2.3.3 的设备上试过了,它可以工作...必须包含在 ICS 中破坏了我的代码...
标签: android sockets exception device