Java Network Programming 筆記(2)

來源:互聯網
上載者:User

Java Network Programming 筆記
n5
二 尋找Internet地址
Chapter 6 Looking up Internet Addresses
java.net.InetAddress類是java對IP地址的封裝,這個類被其他大多數網路類使用,包括Socket,ServerSocket,URL,DatagramSocket,DatagramPacket。
該類中包含hostName和address,但不是public的。
1 獲得InetAddress對象
InetAddress類沒有公有構造器,通過三個static方法可得到InetAddress對象:
public static InetAddress InetAddress.getByName(String hostName) throws UnknownHostException
public static InetAddress[] InetAddress.getAllByName(String hostName) throws UnknownHostException
public static InetAddress InetAddress.getLocalHost() throws UnknownHostException
這三個方法會進行網路連接去得到它們需要的所有資訊。類中的其他方法如getAddress()和getHostName()使用這3個方法提供的資訊而不進行網路連接,不過非常小的情況它們也會串連網路但不拋出任何異常。
參數hostName可以是網址如www.xxx.com也可以是字串形式的點分IP地址如10.2.3.4
Java1.1以後,如果用IP地址做參數,將根據這個IP地址建立一個InetAdress對象,而不使用DNS檢查。這就可能建立一個主機並不存在的InetAddress對象。使用這種方法建立的InetAddress對象,主機名稱(hostName)被初始化為點分IP地址。只有當hostname被請求時(顯示的如調用getAddress(),隱式的如調用toString()),DNS才會檢查實際的主機名稱,如果DNS檢查發現指定的IP地址找不到,則hostname保留為原來的點分IP地址,而不會拋出UnknownHostException
HostName比IP地址穩定,對於一個主機HostName往往不變而IP地址可能變化,所以最好使用hostname做參數,而只有當主機沒有hostname時才使用點分ip地址。
有些主機有不止一個IP地址,使用getAllByName()可以以數組的形式得到某主機名稱對應的所有IP地址。
getLocalHost()獲得原生InetAddress對象
2 獲得資訊
public String getHostName()
可以得到hostname,特別是用點分IP地址作為參數得到InetAddress對象時可用getHostName得到hostname.
public String getHostAddress()
得到點分IP地址字串,可用這個方法列印出IP地址
public byte[] getAddress()
得到IP地址,儲存在byte數組中,比如IPv4格式的IP地址10.2.3.4會得到長度為4的數組ip,則ip[0]=10,ip[1]=2,ip[2]=3,ip[3]=4;若是IPv6,則數組長度就不是4了

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.