1

我收到异常 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 和地址 absolute-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);

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

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

4

2 回答 2

1

您需要将此前提添加到AndroidManifest.xml

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

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

Socket sock = new Socket(InetAddress.getByName(weburl) , 13267);
于 2012-07-12T18:42:55.830 回答
1

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

关于鸡的其他内容在问题中完全不清楚:)

编辑0:

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

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

于 2012-07-12T19:22:39.847 回答