UnknowHostException android客户端套接字

时间:2012-07-12 18:39:04

标签: java android sockets ip host

我收到异常java.net.UnknowHostException:http://arbitrary-hero.dyndns.org/。我试图用我已经制作的Android客户端应用程序连接到该地址。

我有两台计算机,一台运行ubuntu 10.10,另一台运行Windows 7.当我在Windows 7计算机上访问www.ipchicken.com检查我的ip时,当我从中执行ifconfig时,我得到71.72.220.109我的linux机器上的命令行我得到71.67.105.9。 71.72.220.109进入我的服务器应用程序在Windows 7计算机71.67.105.9和地址arbitrary-hero.dyndns.org转到我的ubuntu 10.10机器上的apache服务器。计算机使用相同的网络在同一个房子里,我不明白为什么他们有这些不同的地址。我也试图让他们都使用URL。

        String webserver = "71.67.105.9"; //does not work
        String everythingelseinthehouse = "71.72.220.109"; //works
        String weburl = "http://arbitrary-hero.dyndns.org/"; // does not work

        Socket sock = new Socket (weburl , 13267);
        //Socket sock = new Socket (address_everythingelse , 13267);
        //Socket sock = new Socket (address_room , 13267);

这是我声明我的套接字的地方,对于额外的代码感到抱歉,但我已经尝试了所有可能的组合来使这项工作。

如果您希望我提供更多代码来帮助我解决此问题,请问我很乐意解决此问题。

2 个答案:

答案 0 :(得分:1)

您需要将此权限添加到AndroidManifest.xml

<uses-permission android:name="android.permission.INTERNET" />

此外,您需要使用InetAddress来使用域名而不是IP地址:

Socket sock = new Socket(InetAddress.getByName(weburl) , 13267);

答案 1 :(得分:1)

网址不是主机名,请改用InetAddress.getByName("something.dyndns.org")

关于鸡的其他事情在问题中完全不明确:)

编辑0:

...当我从我的linux机器上的命令行执行ifconfig时,我得到71.67.105.9 ...

这告诉我你的Linux机箱是静态配置了这个IP,或者你的路由器设置为以不同方式处理有线连接。