Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
真实android设备上的协议异常不支持地址族_Android_Sockets_Exception_Device - Fatal编程技术网

真实android设备上的协议异常不支持地址族

真实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

我这里有点麻烦,一方面我有一个服务器在23000端口监听,另一方面是一个Android应用程序作为客户端。虽然使用典型的10.2…IP在Emulator中(顺便说一句,这是为2.3.3构建的)连接似乎可以正常工作,但在尝试使用三星Galaxy标签时,我不断得到著名的:

“协议异常不支持地址族”

最终,代码如下所示:

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中包含破坏我的代码的代码。。。