什么是' localhost' Android设备的地址?
我在同一个应用程序中使用客户端和服务器测试程序。
<{1}}和SERVER_IP ="http://localhost"
都不适用于
"http://127.0.0.1"
它给出了:
无法解析主机
InetAddress serverAddr = InetAddress.getByName(SERVER_IP); socket = new Socket(serverAddr, SERVERPORT);
:没有关联的地址 与主机名android
使用localhost的最佳方法是什么?
更新
感谢所有评论:"http://localhost"
是不明智的。正确的是"http://localhost"
或"localhost"
或"127.0.0.1"
等。但我希望最好的解决方案是明确的答案。
答案 0 :(得分:3)
Sockets通过TCP进行通信,这是一种比HTTP更低级别的协议。当您为套接字通信识别server address时,请使用服务器的裸名称(例如,&#34; localhost&#34;)或点分四(例如&#34; 192.168.0.100&# 34。)
不要包含http://或任何其他方案。
如果我理解正确的问题并且目标是从同一台机器(手机)打开一个插座,你可以使用
InetAddress serverAddr = InetAddress.getByName(null);
获得&#34; loopback&#34; interface,相当于使用localhost。
答案 1 :(得分:1)
根据this回答,您只需使用本地IP作为localhost即可。你可以在Windows上使用ipconfig或在linux上使用ifconfig找到它。
显然你也可以替换10.0.2.2