真实android设备上的协议异常不支持地址族
我这里有点麻烦,一方面我有一个服务器在23000端口监听,另一方面是一个Android应用程序作为客户端。虽然使用典型的10.2…IP在Emulator中(顺便说一句,这是为2.3.3构建的)连接似乎可以正常工作,但在尝试使用三星Galaxy标签时,我不断得到著名的: “协议异常不支持地址族” 最终,代码如下所示:真实android设备上的协议异常不支持地址族,android,sockets,exception,device,Android,Sockets,Exception,Device,我这里有点麻烦,一方面我有一个服务器在23000端口监听,另一方面是一个Android应用程序作为客户端。虽然使用典型的10.2…IP在Emulator中(顺便说一句,这是为2.3.3构建的)连接似乎可以正常工作,但在尝试使用三星Galaxy标签时,我不断得到著名的: “协议异常不支持地址族” 最终,代码如下所示: InetSocketAddress inetAddress; //this is done to keep backward compatibility prior
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,没有防火墙,代理,完全打开,换句话说
有什么想法吗
谢谢!
Alex如果有人在这个问题上遇到了同样的问题,这是因为我试图在主活动的同一线程中打开套接字。看起来这是a)不可取的,b)不再允许。因此,将连接代码移动到一个单独的线程,您应该是安全的。好吧,我在2.3.3设备中进行了尝试,它工作了……必须在ICS中包含破坏我的代码的代码。。。