- Java核心技術·卷Ⅱ:高級特性(原書第10版)
- (美)凱S.霍斯特曼
- 639字
- 2020-10-30 18:10:55
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()
返回主機名。
- Vue.js設計與實現
- DBA攻堅指南:左手Oracle,右手MySQL
- 機器學習系統:設計和實現
- Mastering RabbitMQ
- Java面向對象思想與程序設計
- Vue.js快跑:構建觸手可及的高性能Web應用
- Building Mobile Applications Using Kendo UI Mobile and ASP.NET Web API
- Podman實戰
- The Data Visualization Workshop
- Unreal Engine 4 Shaders and Effects Cookbook
- Raspberry Pi Home Automation with Arduino(Second Edition)
- Microsoft Dynamics AX 2012 R3 Financial Management
- Unity 3D/2D移動開發實戰教程
- Moodle 3 Administration(Third Edition)
- Python大規模機器學習