我的本地计算机(Windows7)上运行着一个服务器,它监听传入的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);

固定它

09-29 21:50