Java中的IP地址和InetAddress類使用詳解
Java語言的優(yōu)勢之一是Java程序能訪問網(wǎng)絡資源。Java提供一系列的類支持Java程序訪問網(wǎng)絡資源。
TCP/IP協(xié)議和IP地址
為了進行網(wǎng)絡通信,通信雙方必須遵守通信協(xié)議.目前最廣泛使用的是TCP/IP協(xié)議,它是Internet中各方所遵循的公共協(xié)議.TCP(Transport Control Protocol)是一種傳輸控制協(xié)議,IP(Internet Protocol)是一種網(wǎng)際協(xié)議,TCP/IP代表這兩個協(xié)議的。
TCP/IP分為四個層次:
- 網(wǎng)絡接口層:負責接收和發(fā)送物理幀;
- 網(wǎng)絡層:負責相鄰節(jié)點之間的通信;
- 傳輸層:負責起點到終點的通信;
- 應用層:提供諸如文件傳輸、電子郵件等應用程序。
TCP協(xié)議將任何網(wǎng)絡信息傳輸當作信息流。例如,機器A上的一個長報文發(fā)送到機器B,發(fā)送端A需要將數(shù)據(jù)分片,把一片片數(shù)據(jù)分別打包發(fā)送。數(shù)據(jù)包有一個頭,指明該數(shù)據(jù)包發(fā)往何處、兇中數(shù)據(jù)在接收序列中所處的位置。每個包都按照IP地址提供的目的地從一個臺機器傳送到另一臺機器,或從一個網(wǎng)絡節(jié)點傳送到另一個網(wǎng)絡節(jié)點。在接收端B,這些數(shù)據(jù)包都能夠按照正確的順序重新組裝起來。
TCP/IP協(xié)議是一個協(xié)議族,由一組協(xié)議組成,主要包含以下更具體的協(xié)議:
Telnet(遠程登錄):允許一臺計算機用戶登錄到另一臺遠程計算機上,使遠程操作如同在本地計算機上操作一樣。
FTP(File Transfer protocol,文件傳輸協(xié)議):允許用戶將遠程主機上的文件復制到自己的計算機上。
SMTP(simple Mail Transfer Protocol,簡單郵件傳輸協(xié)議):用于傳輸電子郵件。
NFS(Network file Server,網(wǎng)絡文件服務器):使多臺計算機透明地訪問彼此的目錄。
HTTP:一種超文本傳輸協(xié)議,它是基于TCP/IP協(xié)議的,是WWW瀏覽器和服務器之間應用層的通信協(xié)議。HTTP是一種通用、無狀態(tài)、面向?qū)ο蟮膮f(xié)議。HTTP會話(事務)包括四個步驟:連接(Connection)、請求(Request)、應答(Response)和關(guān)閉(Close)。
Java語言可編寫低層的網(wǎng)絡應用。例如,傳輸文件,建立郵件控制器,處理網(wǎng)絡數(shù)據(jù)等。Java語言支持的Internet協(xié)議有ftp、telnet、www等,支持網(wǎng)絡通信的軟件都在java.net包中,例如,java.net.ftp、java.net.www等。
IP地址用于指明因特網(wǎng)上的一臺計算機在網(wǎng)絡中的地址,用32位二進制代碼表示一個網(wǎng)絡地址。地址分A、B、C、D、E五類,常用的是A、B、C三類:
A(1.0.0.0-126.255.255.255):0,7位網(wǎng)絡號,后24位為主機號;
B(128.0.0.0-191.255.255.255):10,14位網(wǎng)絡號,后16位為主機號;
C(192.0.0.0-223.255.255.255):110,21位網(wǎng)絡號,后8位為主機號;
D(224.0.0.0-239.255.255.255):1110,28位多點廣播組標號;
E(240.0.0.0-254.255.255.255):1111,保留試驗使用。
通常,IP地址用四段十進制數(shù)表示(8位一段)。例如:
58.218.204.252
或用文字域名表示。例如:
chabaoo.cn
在因特網(wǎng)上,域名服務器(Domain Name Server,DNS)執(zhí)行文字名稱到二進制網(wǎng)絡地址的映射。
InetAddress類
Java.net包中有InetAddress類的定義,InetAddress類的對象用于IP地址和域名,該類提供以下方法:
getByName(String s):獲得一個InetAddress 類的對象,該對象中含有主機的IP地址和域名,該對象用如下格式表示它包含的信息:www.sina.com.cn/202.108.37.40;
String getHostName():獲取InetAddress對象的域名;
String getHostAddress():獲取InetAddress對象的IP地址;
getLocalHost():獲得一個InetAddress對象,該對象含有本地機的域名和IP地址。
【例】 說明Inetaddress類的用法的應用程序。程序演示如何獲取www.weixueyuan.net的域名和IP地址。
Import java.net.*; Class Example10_1{ Public static void main(String args[]){ Try{ //以下代碼通過域名建立InetAddress對象: InetAddress addr = InetAddress.getByname(“chabaoo.cn”); String domainName = addr.getHostName();//獲得主機名 String IPName = addr.getHostAddress();//獲得IP地址 System.out.println(domainName); System.out.println(IPName); }catch(UnknownHostException e){ e.printStackTrace(); } } }
運行結(jié)果為:
chabaoo.cn 58.218.204.252
相關(guān)文章
Triple協(xié)議支持Java異?;貍髟O計實現(xiàn)詳解
這篇文章主要為大家介紹了Triple協(xié)議支持Java異常回傳設計實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-12-12關(guān)于Java中Comparable 和 Comparator的用法
這篇文章主要介紹了關(guān)于Java中Comparable 和 Comparator的用法,Comparable 和 Comparator 是關(guān)于排序的兩個接口,用來實現(xiàn) Java 集合中的的排序功能,需要的朋友可以參考下2023-04-04springboot?max-http-header-size最大長度的那些事及JVM調(diào)優(yōu)方式
這篇文章主要介紹了springboot?max-http-header-size最大長度的那些事及JVM調(diào)優(yōu)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09java使用jacob.jar將word轉(zhuǎn)pdf
這篇文章主要為大家詳細介紹了java利用jacob.jar將word轉(zhuǎn)pdf,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-12-12Java Swing CardLayout卡片布局的實現(xiàn)示例
這篇文章主要介紹了Java Swing CardLayout卡片布局的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-12-12