通过主机名连接
问题描述:
我有一台服务器运行在我的本地计算机(Windows 7)上,它侦听传入的TCP套接字连接。在同一台机器上,我通过IntelliJ运行Android模拟器。通过主机名连接
连接被建立在执行:
Socket socket = new Socket();
InetSocketAddress address = new InetSocketAddress("10.0.2.2", 8082);
socket.connect(address);
但通过主机名尝试时:
Socket socket = new Socket();
InetSocketAddress address = new InetSocketAddress("comp2", 8082);
socket.connect(address);
我得到:
java.net.UnknownHostException: Host is unresolved: comp2:8082
当我使用Windows命令提示符来ping(通过主机名)我的电脑和其他电脑通过同一网络我收到回复。
关于如何让它工作的任何想法?
答
我已经解决了。显然,模拟器与在Windows中运行的某些服务不同,它不会将名称comp2转换为comp2.letre.ltd的完整主机名。 更改
InetSocketAddress address = new InetSocketAddress("comp2", 8082);
到
InetSocketAddress address = new InetSocketAddress("comp2.letre.ltd", 8082);
固定它
答
请检查解析主机名为&对应IP地址的DNS条目。