[轉載]在Java2環境中應用IP地址封裝對象

來源:互聯網
上載者:User
 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語言進行網路程式設計有所協助。

聯繫我們

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