在Java2環境中應用IP地址封裝對象

在Java2環境中應用IP地址封裝對象

 

IP地址封裝對象的結構
Java2平臺中定義的InetAddress對象是利用Java語言進行網絡通訊程序設計過程中,對互聯網IP地址進行對象類型封裝後創建的JDK API對象。以InetAddress對象爲父對象,Java2平臺中還定義了Inet4Address和Inet6Address對象,分別對應於符合IPv4規範和IPv6規範的互聯網地址對象。InetAddress對象的定義繼承關係如下:

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


在該對象中沒有定義構造方法,即不能夠利用new操作符創建InetAddress對象實例,那麼如何獲取該對象的實例呢?在InetAddress對象中定義了多種類型的成員方法,在應用程序中可以調用這些方法來實現相應的網絡功能:

● byte[] getAddress()
● static InetAddress[] 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("www.ccidnet.com.cn"));
        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地址 : www.ccidnet.com.cn/210.51.0.73
賽迪網服務器域名 : www.ccidnet.com.cn


小結


Java2平臺中定義了多種類型的對象,用於以URL、Socket、RMI和CORBA等方式實現Java程序的網絡通信和數據交換,而本文只是對互聯網環境中的基本應用對象-IP地址的Java封裝對象的結構和成員方法形式進行了簡要剖析,並編寫了簡單的實例程序說明其成員方法的應用方式,希望能夠爲讀者利用Java語言進行網絡程序設計有所幫助。
發佈了35 篇原創文章 · 獲贊 1 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章