我收到异常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);
这是我声明我的套接字的地方,对于额外的代码感到抱歉,但我已经尝试了所有可能的组合来使这项工作。
如果您希望我提供更多代码来帮助我解决此问题,请问我很乐意解决此问题。
答案 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")
。
关于鸡的其他事情在问题中完全不明确:)
...当我从我的linux机器上的命令行执行ifconfig时,我得到71.67.105.9 ...
这告诉我你的Linux机箱是静态配置了这个IP,或者你的路由器设置为以不同方式处理有线连接。