標籤:
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類