我想弄清楚如何在调试期间(我没有在实际设备上尝试过)在我的android应用程序中使用特定的ipaddress。Android调试InetAddress.isReachable
从阅读看来,InetAddress.isReachable应该为我做这个。
最初我以为我可以编码这样的:
的InetAddress地址= InetAddress.getByAddress(新字节[] {(字节)192,(字节)168,(字节)254,(字节)10) ; success = address.isReachable(3000);
即使我合理地确定它是可到达地址,这将返回false。
我发现如果我将其更改为127,0,0,1,它将返回成功。
我的下一次尝试是相同的代码,但我使用了从www.google.com(本文撰写时为72.167.164.64)的ping中获得的地址。没有成功。
于是我尝试了另一个例子:
int timeout = 2000;
InetAddress[] addresses = InetAddress.getAllByName("www.google.com");
for (InetAddress address : addresses)
{
if (address.isReachable(timeout))
{
success = true; // just set a break point here
}
}
我是比较新到Java和Android所以我怀疑我失去了一些东西,但我找不到任何可以表明那是什么。
“它试图建立连接7号端口,这通常对现代系统没有正在运行的服务” ......是的,但这并不重要,因为它解释“连接被拒绝” 7号端口的成功,表明主机在那里并且TCP已启动。 – EJP 2010-07-06 03:30:52
许多系统不会发送'连接被拒绝'或'端口不可达'消息 – 2010-07-07 06:22:30