官术网_书友最值得收藏!

4.1.4 因特網地址

通常,不用過多考慮因特網地址的問題,它們是用一串數字表示的主機地址,一個因特網地址由4個字節組成(在IPv6中是16個字節),比如129.6.15.28。但是,如果需要在主機名和因特網地址之間進行轉換,那么就可以使用InetAddress類。

只要主機操作系統支持IPv6格式的因特網地址,java.net包也將支持它。

靜態的getByName方法可以返回代表某個主機的InetAddress對象。例如,

將返回一個InetAddress對象,該對象封裝了一個4字節的序列:129.6.15.28。然后,可以使用getAddress方法來訪問這些字節:

一些訪問量較大的主機名通常會對應于多個因特網地址,以實現負載均衡。例如,在撰寫本書時,主機名google.com就對應著12個不同的因特網地址。當訪問主機時,會隨機選取其中的一個。可以通過調用getAllByName方法來獲得所有主機:

最后需要說明的是,有時我們可能需要本地主機的地址。如果只是要求得到localhost的地址,那總會得到本地回環地址127.0.0.1,但是其他程序無法用這個地址來連接到這臺機器上。此時,可以使用靜態的getLocalHost方法來得到本地主機的地址:

程序清單4-2是一段比較簡單的程序代碼。如果不在命令行中設置任何參數,那么它將打印出本地主機的因特網地址。反之,如果在命令行中指定了主機名,那么它將打印出該主機的所有因特網地址,例如:

程序清單4-2 inetAddress/InetAddressTest.java

java.net.InetAddress 1.0

·static InetAddress getByName(String host)

·static InetAddress[]getAllByName(String host)

為給定的主機名創建一個InetAddress對象,或者一個包含了該主機名所對應的所有因特網地址的數組。

·static InetAddress getLocalHost()

為本地主機創建一個InetAddress對象。

·byte[]getAddress()

返回一個包含數字型地址的字節數組。

·String getHostAddress()

返回一個由十進制數組成的字符串,各數字間用圓點符號隔開,例如,“129.6.15.28”。

·String getHostName()

返回主機名。

主站蜘蛛池模板: 汝阳县| 通山县| 徐州市| 鸡西市| 罗田县| 华阴市| 扎赉特旗| 英山县| 新田县| 渑池县| 兴安县| 汉源县| 门源| 依兰县| 孙吴县| 农安县| 霍林郭勒市| 托克托县| 五莲县| 新昌县| 连江县| 东山县| 晋州市| 余庆县| 铜山县| 北川| 温宿县| 涟水县| 德钦县| 娄底市| 浙江省| 丰顺县| 广州市| 南投市| 桦川县| 岳西县| 特克斯县| 洪雅县| 临城县| 辉南县| 金华市|