Java知多少(103)網路編程之IP地址和InetAddress類

來源:互聯網
上載者:User

標籤:

Java語言的優勢之一是Java程式能訪問網路資源。Java提供一系列的類支援Java程式訪問網路資源。

TCP/IP協議和IP地址

為了進行網路通訊,通訊雙方必須遵守通訊協定.目前最廣泛使用的是TCP/IP協議,它是Internet中各方所遵循的公用協議.TCP(Transport Control Protocol)是一種傳輸控制通訊協定,IP(Internet Protocol)是一種網際協議,TCP/IP代表這兩個協議的。

TCP/IP分為四個層次:

  • 網路介面層:負責接收和發送物理幀;
  • 網路層:負責相鄰節點之間的通訊;
  • 傳輸層:負責起點到終點的通訊;
  • 應用程式層:提供諸如檔案傳輸、電子郵件等應用程式。


TCP協議將任何網路資訊傳輸當作資訊流。例如,機器A上的一個長報文發送到機器B,發送端A需要將資料分區,把一片片資料分別打包發送。資料包有一個頭,指明該資料包發往何處、凶中資料在接收序列中所處的位置。每個包都按照IP地址提供的目的地從一個台機器傳送到另一台機器,或從一個網路節點傳送到另一個網路節點。在接收端B,這些資料包都能夠按照正確的順序重新組裝起來。

TCP/IP協議是一個協議族,由一組協議組成,主要包含以下更具體的協議:

  • Telnet(遠程登入):允許一台電腦使用者登入到另一台遠端電腦上,使遠程操作如同在本機電腦上操作一樣。
  • FTP(File Transfer protocol,檔案傳輸通訊協定):允許使用者將遠程主機上的檔案複製到自己的電腦上。
  • SMTP(simple Mail Transfer Protocol,簡易郵件傳輸通訊協定):用於傳輸電子郵件。
  • NFS(Network file Server,網路檔案伺服器):使多台電腦透明地訪問彼此的目錄。
  • HTTP:一種超文字傳輸通訊協定 (HTTP),它是基於TCP/IP協議的,是WWW瀏覽器和伺服器之間應用程式層的通訊協定。HTTP是一種通用、無狀態、物件導向的協議。HTTP會話(事務)包括四個步驟:串連(Connection)、請求(Request)、應答(Response)和關閉(Close)。


Java語言可編寫低層的網路應用。例如,傳輸檔案,建立郵件控制器,處理網路資料等。Java語言支援的Internet協議有ftp、telnet、www等,支援網路通訊的軟體都在java.net包中,例如,java.net.ftp、java.net.www等。

IP地址用於指明網際網路上的一台電腦在網路中的地址,用32位二進位代碼錶示一個網路地址。地址分A、B、C、D、E五類,常用的是A、B、C三類:

  • A(1.0.0.0-126.255.255.255):0,7位網路號,後24位為主機號;
  • B(128.0.0.0-191.255.255.255):10,14位網路號,後16位為主機號;
  • C(192.0.0.0-223.255.255.255):110,21位網路號,後8位為主機號;
  • D(224.0.0.0-239.255.255.255):1110,28位多點廣播組標號;
  • E(240.0.0.0-254.255.255.255):1111,保留實驗使用。


通常,IP地址用四段十進位數表示(8位一段)。例如:
    116.255.226.187
或用文字網域名稱表示。例如:
    www.weixueyuan.net
在網際網路上,網域名稱伺服器(Domain Name Server,DNS)執行文字名稱到二進位網路地址的映射。

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地址。


【例 13-1】 說明Inetaddress類的用法的應用程式。程式示範如何擷取www.weixueyuan.net的網域名稱和IP地址。

 1 Import java.net.*; 2 Class Example10_1{ 3     public static void main(String args[]){ 4         try{ //以下代碼通過網域名稱建立InetAddress對象: 5             InetAddress addr = InetAddress.getByname(“www.cnblogs.com”); 6             String domainName = addr.getHostName();//獲得主機名稱 7             String IPName = addr.getHostAddress();//獲得IP地址 8             System.out.println(domainName); 9             System.out.println(IPName);10         }catch(UnknownHostException e){11             e.printStackTrace();12         }13     }14 }

運行結果為:

www.cnblogs.com
42.121.252.58

系列文章:

Java知多少(上)Java知多少(中)Java知多少(78)Java向量(Vector)及其應用Java知多少(79)雜湊表及其應用Java知多少(80)圖形介面設計基礎Java知多少(81)架構視窗基礎Java知多少(82)標籤、按鈕和按鈕事件簡介Java知多少(83)面板基礎:JPanel和JScrollPaneJava知多少(84)圖形介面之布局設計Java知多少(85)文字框和文本區Java知多少(86)文字框和文本區的輸入輸出Java知多少(87)選擇框和選項按鈕Java知多少(88)列表和組合框Java知多少(89)列表和組合框Java知多少(90)菜單Java知多少(91)對話方塊Java知多少(92)捲軸Java知多少(93)滑鼠事件Java知多少(94)鍵盤事件Java知多少(95)繪圖基礎Java知多少(96)繪圖之設定字型和顏色Java知多少(97)繪圖模式概述Java知多少(98)Graphics類的繪圖方法Java知多少(99)Graphics2D類的繪圖方法Java知多少(100)影像處理基礎Java知多少(101)映像緩衝技術Java知多少(102)多媒體基礎

Java知多少(103)網路編程之IP地址和InetAddress類

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.