我想弄清楚如何在調試期間(我沒有在實際設備上嘗試過)在我的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