零點(diǎn)起飛學(xué)Java之Java網(wǎng)絡(luò)編程_第1頁(yè)
零點(diǎn)起飛學(xué)Java之Java網(wǎng)絡(luò)編程_第2頁(yè)
零點(diǎn)起飛學(xué)Java之Java網(wǎng)絡(luò)編程_第3頁(yè)
零點(diǎn)起飛學(xué)Java之Java網(wǎng)絡(luò)編程_第4頁(yè)
零點(diǎn)起飛學(xué)Java之Java網(wǎng)絡(luò)編程_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第14章 Java網(wǎng)絡(luò)編程Java語(yǔ)言提供了強(qiáng)大的網(wǎng)絡(luò)編程功能,能夠處理各種網(wǎng)絡(luò)資源以及進(jìn)行網(wǎng)絡(luò)通信。包定義了Java語(yǔ)言網(wǎng)絡(luò)編程的主要工具類。其中,包括代表網(wǎng)絡(luò)IP地址的InetAddress類;與URL有關(guān)的URL類和URLConnection類;與網(wǎng)絡(luò)通信有關(guān)的Socket類和ServerSocket類。本章節(jié)將對(duì)這些內(nèi)容進(jìn)行詳細(xì)介紹。14.1 什么是網(wǎng)絡(luò)編程Internet技術(shù)的發(fā)展促進(jìn)了Java語(yǔ)言的發(fā)展,網(wǎng)絡(luò)編程是Java語(yǔ)言的重要功能。Java語(yǔ)言提供了強(qiáng)大的網(wǎng)絡(luò)編程功能,能夠處理各種網(wǎng)絡(luò)資源以及進(jìn)行網(wǎng)絡(luò)通信。這些網(wǎng)絡(luò)功能都定義在包中。net包的結(jié)構(gòu)如圖14.1所示。14.1 什

2、么是網(wǎng)絡(luò)編程對(duì)于net包中的內(nèi)容,按功能形式,大體上可以分為如下三類。網(wǎng)絡(luò)資源類:URL是資源的表達(dá)方式,在包中主要是通過(guò)使用URL和InetAddress類來(lái)表示和操作網(wǎng)絡(luò)中的資源。Socket(套接字)類:Socket(套接字)用來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)通信中客戶端和服務(wù)器的連接。包定義了Socket類和ServerSocket類分別代表通信雙方的客戶端和服務(wù)器端。Datagram(數(shù)據(jù)報(bào))類:Datagram(數(shù)據(jù)報(bào))類以數(shù)據(jù)報(bào)的形式實(shí)現(xiàn)網(wǎng)絡(luò)通信,是基于無(wú)連接的UDP協(xié)議的一種網(wǎng)絡(luò)通信方式。14.2 InetAddress類InetAddress類用于表示網(wǎng)絡(luò)上的IP地址。網(wǎng)絡(luò)中的每臺(tái)主機(jī)采用IP地址

3、進(jìn)行標(biāo)識(shí),Java語(yǔ)言利用包中的InetAddress類對(duì)IP地址進(jìn)行封裝。該類提供了操作IP地址的各種方法,類本身沒(méi)有構(gòu)造方法,而是通過(guò)調(diào)用相關(guān)靜態(tài)方法獲取實(shí)例。InetAddress類中定義的主要方法,如下所示。boolean equals(Object obj):將此對(duì)象與指定對(duì)象比較。byte getAddress():返回此InetAddress對(duì)象的原始IP地址。static InetAddress getAllByName(String host):在給定主機(jī)名的情況下,根據(jù)系統(tǒng)上配置的名稱,服務(wù)返回其IP地址所組成的數(shù)組。static InetAddress getByAddr

4、ess(byte addr):在給定原始IP地址的情況下,返回InetAddress對(duì)象。static InetAddress getByAddress(String host, byte addr):根據(jù)提供的主機(jī)名和IP地址創(chuàng)建InetAddress。static InetAddress getByName(String host):在給定主機(jī)名的情況下確定主機(jī)的IP地址。String getCanonicalHostName():獲取此IP地址的完全限定域名。String getHostAddress():返回IP地址字符串(以文本表現(xiàn)形式)。String getHostName():獲

5、取此IP地址的主機(jī)名。static InetAddress getLocalHost():返回本地主機(jī)。int hashCode():返回此IP地址的哈希碼。14.3 URL編程包定義了URL和URLConnection類用來(lái)處理有關(guān)URL的內(nèi)容。對(duì)于這部分的具體內(nèi)容,下面分別進(jìn)行介紹。14.3.1 什么是URLURL是統(tǒng)一資源定位符(Uniform Resource Locator)的簡(jiǎn)稱,用于表示Internet上某一資源的地址。Internet上的網(wǎng)絡(luò)資源非常豐富,如常見(jiàn)的WWW和FTP站點(diǎn)上的各種文件、目錄等。瀏覽器通過(guò)解析給定的URL可以查找網(wǎng)絡(luò)上的這些資源。URL的語(yǔ)法格式通常如圖

6、14.2所示。14.3.2 URL類在包中定義了URL類,該類用來(lái)處理有關(guān)URL的內(nèi)容。對(duì)于URL類的創(chuàng)建和使用,下面分別進(jìn)行介紹。1創(chuàng)建URL類URL類的構(gòu)造方法主要有如下幾種URL(String spec):使用指定的字符串構(gòu)建。URL(String protocol, String host, int port, String file):使用指定的協(xié)議、主機(jī)名、端口號(hào)、文件名創(chuàng)建。URL(String protocol, String host, String file):使用指定的協(xié)議、主機(jī)名、文件名創(chuàng)建。URL(URL context, String spec):使用基地址和相對(duì)U

7、RL創(chuàng)建。2使用URL類使用URL類的常用方法主要有如下幾種。String getAuthority():獲得此URL的授權(quán)部分。Object getContent():獲得此URL的內(nèi)容。int getDefaultPort():獲得與此URL關(guān)聯(lián)協(xié)議的默認(rèn)端口號(hào)。String getFile():獲得此URL的文件名。String getHost():獲得此URL的主機(jī)名(如果適用)。String getPath():獲得此URL的路徑部分。int getPort():獲得此URL的端口號(hào)。String getProtocol():獲得此URL的協(xié)議名稱。String getQuery()

8、:獲得此URL的查詢部分。String getRef():獲得此URL的錨點(diǎn)(也稱為“引用”)。14.3.3 URLConnection類在包中定義了URLConnection類,該類用來(lái)表示與URL建立的通信連接。URLConnection類的實(shí)例通過(guò)調(diào)用URL類的openConnection()方法獲得。URLConnection類用于訪問(wèn)網(wǎng)絡(luò)資源的主要方法如下所示。void addRequestProperty(String key, String value):添加由鍵值對(duì)指定的一般請(qǐng)求屬性。abstract void connect():打開(kāi)到此URL引用的資源的通信鏈接(如果尚未建

9、立這樣的連接)。Object getContent():檢索此URL連接的內(nèi)容。long getDate():返回date頭字段的值。boolean getDefaultUseCaches():返回URLConnection的useCaches標(biāo)志的默認(rèn)值。InputStream getInputStream():返回從此打開(kāi)的連接讀取的輸入流。OutputStream getOutputStream():返回寫入到此連接的輸出流。URL getURL():返回此URLConnection的URL字段的值。boolean getUseCaches():返回此URLConnection的useC

10、aches字段的值。14.4 Socket編程Socket(套接字)用來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)通信中客戶端和服務(wù)器的連接。包定義了Socket類和ServerSocket類分別代表通信雙方的客戶端和服務(wù)器端。對(duì)于這部分的具體內(nèi)容,下面分別進(jìn)行介紹。14.4.1 Socket類Socket類用于表示通信雙方中的客戶端,該類可以向服務(wù)器端發(fā)送連接請(qǐng)求。Socket類的構(gòu)造方法主要有如下幾種。Socket():無(wú)參構(gòu)造方法。Socket(InetAddress address, int port):創(chuàng)建Socket對(duì)象,并連接到指定IP地址address的指定端口號(hào)port。Socket(InetAddress

11、address, int port, InetAddress localAddr, int localPort):創(chuàng)建Socket對(duì)象,并連接到指定IP地址address的指定端口號(hào)port。同時(shí)綁定本機(jī)地址localAddr及本機(jī)端口號(hào)localPort。Socket(String host, int port):創(chuàng)建Socket對(duì)象,并連接到指定主機(jī)host的指定端口號(hào)port。Socket(String host, int port, InetAddress localAddr, int localPort):創(chuàng)建Socket對(duì)象,并連接到指定主機(jī)host的指定端口號(hào)port。同時(shí)綁定本

12、機(jī)地址localAddr及本機(jī)端口號(hào)localPort。 創(chuàng)建了Socket類的對(duì)象以后,可以調(diào)用Socket類的相關(guān)方法獲取各種屬性信息以及與服務(wù)器進(jìn)行通信。Socket類的常用方法如下所示。void bind(SocketAddress bindpoint):將套接字綁定到本地地址。void close():關(guān)閉此套接字。14.4.2 ServerSocket類與Socket類相對(duì)應(yīng),ServerSocket類用于表示通信雙方中的服務(wù)器端。該類可以監(jiān)聽(tīng)客戶端發(fā)送的連接請(qǐng)求并進(jìn)行處理。ServerSocket類的構(gòu)造方法主要有如下幾種。ServerSocket ():無(wú)參構(gòu)造方法。Serve

13、rSocket (int port):創(chuàng)建ServerSocket對(duì)象,并監(jiān)聽(tīng)指定的端口號(hào)port。ServerSocket (int port, int backlog):使用指定的backlog創(chuàng)建ServerSocket對(duì)象,同時(shí)綁定到指定的本地端口號(hào)port。ServerSocket(int port, int backlog, InetAddress bindAddr):使用指定的端口號(hào)port創(chuàng)建ServerSocket對(duì)象,同時(shí)監(jiān)聽(tīng)backlog并綁定本地IP地址bindAddr。創(chuàng)建了ServerSocket類的對(duì)象以后,服務(wù)器可以對(duì)指定的端口進(jìn)行監(jiān)聽(tīng)。通過(guò)調(diào)用ServerSocket類的相關(guān)方法可以接收客戶端的請(qǐng)求從而與之通信。ServerSocket類的常用方法如下所示。Socket accept():偵聽(tīng)并接收到此套接字的連接。void bind(SocketAddress endpoint):將ServerSocket綁定到特定地址(IP地址和端口號(hào))。說(shuō)明:ServerSocket類的accetp()方法會(huì)阻塞程序的執(zhí)行,直到接收了一個(gè)客戶端

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論