2013-02-02 45 views
6

這是一個新手問題,但我無法獲得我在Google上尋找的答案類型。未解決的套接字地址

我正在閱讀java.net包中的InetSocketAddress類,並且遇到名爲createUnresolved(String host, int port)的此方法。此方法創建一個未解決的套接字。

基本上我們未解決的含義是什麼?我在編譯程序時經常遇到錯誤,但從來沒有完全理解它。任何人都可以請解釋在java中的一般意義,並說明與上下文的方法。

謝謝。

+0

在Javadoc中對此進行了描述,您對此也有誤引。 – EJP

+1

是的,我也寫道,我沒有完全理解它。 – Rajat

回答

0

我發現這個in a sun-blog

但決定保持原樣,但使用createUnresolved()來創建一個 的InetSocketAddress,讓大家知道什麼來實例化。如果 用戶打了一個IP地址開始,我們不會處理它。 (我認爲它之前沒什麼區別)令牌將有任何 用戶在開始時使用(IP或名稱),如果使用名稱, 即使addr更改也不會更改令牌緩存的密鑰。所以 委託令牌應該繼續工作。

基本上,它是一個半成品的InetSocketAddress - 所以它不是最終的迭代。這是一箇中間步驟..

,並從API:

它也可以是一個對(主機名+端口號),在這種情況下, 將嘗試解析主機名。

如果解析失敗,則地址被認爲是未解決的,但可以 仍然在某些情況下,可以使用類似通過代理

連接,所以我們沒有找到主機名,或用戶友好「 www.abc.com「方法。

但是,如果我們通過代理進行連接,則代理服務器處理主機名是可以的。

0

我有同樣的異常:的java.net.UnknownHostException:主機是沒有解決:https://www.google.com

問題是,因爲我加入了協議https://開頭,這個問題後,我取出HTTPS解決://

try { 
    Socket socket = new Socket(); 
    socket.connect(new InetSocketAddress("www.google.com", 443), 100); 
    socket.close(); 
    return true; 
} catch (IOException e) { 
    e.printStackTrace(); 
    return false; 
} 
相關問題