在Java2環境中應用IP地址封裝物件 (轉)

worldblog發表於2008-01-25
在Java2環境中應用IP地址封裝物件 (轉)[@more@]

在2環境中應用封裝

 

IP地址封裝物件的結構
Java2平臺中定義的Address物件是利用Java語言進行通訊設計過程中,對網際網路IP地址進行物件型別封裝後建立的 物件。以InetAddress物件為父物件,Java2平臺中還定義了Inet4Address和Inet6Address物件,分別對應於符合規範和規範的網際網路地址物件。InetAddress物件的定義繼承關係如下:

java.lang. | +--java.net.InetAddress



在該物件中沒有定義構造方法,即不能夠利用new運算子建立InetAddress物件例項,那麼如何獲取該物件的例項呢?在InetAddress物件中定義了多種型別的成員方法,在應用程式中可以這些方法來實現相應的網路功能:

● byte[] getAddress() ● staticAddress[] getAllByName(String host) ● static InetAddress getByAddr(byte[] addr) ● static InetAddress getByAddr(String host, byte[] addr) ● static InetAddress getByName(String host) ● String getHostAddress() ● static InetAddress getLocalHost() … …



從上述InetAddress物件的成員方法定義名稱可以看出:在Java應用程式中,可以採用不同的方法獲取指定網路物件的IP地址封裝物件例項,並進而呼叫該物件中定義的各種型別的成員方法為應用程式提供相應的功能。

IP地址封裝物件應用例項


從上述InetAddress物件定義的成員方法的引數形式可以看出:在讀者的Java應用程式中獲取本機IP地址封裝物件的方法只需要呼叫getLocalHost方法就可以實現,而可以採用透過指定IP地址、指定名稱的方式建立指向其它的IP地址封裝物件。下面的例項程式碼演示了InetAddress物件例項的建立方法,並在建立IP地址封裝物件例項後,呼叫該物件中定義的成員方法獲取服務的方式:

//IPAddressDemo.java import java.net.*; public class IPAddressDemo { InetAddress localIPAddress = null; InetAddress ccidnetIPAddress = null; public static void main( String args[]) { IPAddressDemo ipInstance; ipInstance = new IPAddressDemo(); System.out.println("本機IP地址 : " + ipInstance.getLocalIP()); System.out.println("賽迪網伺服器IP地址 : " + ipInstance.getCCIDNETIP("")); System.out.println("賽迪網伺服器域名 : " + ipInstance.getCCIDNETName()); } //取得本機IP地址成員方法 public InetAddress getLocalIP() { try { localIPAddress = InetAddress.getLocalHost(); } catch (UnknownHostException e) {} return ( localIPAddress ); } //取得賽迪網伺服器的IP地址成員方法 public InetAddress getCCIDNETIP( String strServerName ) { try { ccidnetIPAddress = InetAddress.getByName( strServerName ); } catch (UnknownHostException e) {} return ( ccidnetIPAddress ); } //透過IP地址封裝物件取得計算機系統域名成員方法 public String getCCIDNETName() { String strServerName = null; try { strServerName = ccidnetIPAddress.getHostName(); } catch (SecurityException e) {} return ( strServerName ); } }



上面的程式程式碼中,Java Main方法IPAddressDemo中定義了getLocalIP、getCCIDNETIP和getCCIDNETName三個成員方法,分別用於獲取指向當前計算機系統的IP地址物件、獲取指向賽迪網伺服器的IP地址物件和利用該地址物件獲取伺服器域名的方法。

從這些成員方法的定義形式可以看出:InetAddress物件中定義的靜態型別成員方法getLocalHost和getByName返回的是InetAddress物件例項,在後續程式程式碼中可以直接呼叫該例項成員方法來獲取服務,例如在getCCIDNETName方法中呼叫成員方法getHostName的過程。該程式的輸出結果為:

本機IP地址 : support/192.168.19.251 賽迪網伺服器IP地址 : /210.51.0.73 賽迪網伺服器域名 :



小結


Java2平臺中定義了多種型別的物件,用於以URL、Socket、和等方式實現Java程式的網路通訊和資料,而本文只是對網際網路環境中的基本應用物件-IP地址的Java封裝物件的結構和成員方法形式進行了簡要剖析,並編寫了簡單的例項程式說明其成員方法的應用方式,希望能夠為讀者利用Java語言進行網路程式設計有所幫助。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-998451/,如需轉載,請註明出處,否則將追究法律責任。

相關文章