我的本地计算机(Windows 7)上运行的服务器侦听传入的tcp套接字连接。在同一台机器上,我通过IntelliJ运行Android Emulator。
建立连接时执行:
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(通过主机名)我的计算机和同一网络上的其他计算机时,我收到回复。
关于如何让它运作的任何想法?
答案 0 :(得分:3)
我解决了。 显然,与在Windows中运行的某些服务相比,模拟器不会将名称comp2转换为完整主机名comp2.letre.ltd。 改变
InetSocketAddress address = new InetSocketAddress("comp2", 8082);
到
InetSocketAddress address = new InetSocketAddress("comp2.letre.ltd", 8082);
修好了
答案 1 :(得分:0)
请检查解析主机名和DNS的DNS条目相应的IP地址。