Java實(shí)用程序設(shè)計(jì)(西電版)第11章Java網(wǎng)絡(luò)程序設(shè)計(jì)

上傳人:wux****ua 文檔編號(hào):21912853 上傳時(shí)間:2021-05-15 格式:PPT 頁(yè)數(shù):42 大?。?.63MB
收藏 版權(quán)申訴 舉報(bào) 下載
Java實(shí)用程序設(shè)計(jì)(西電版)第11章Java網(wǎng)絡(luò)程序設(shè)計(jì)_第1頁(yè)
第1頁(yè) / 共42頁(yè)
Java實(shí)用程序設(shè)計(jì)(西電版)第11章Java網(wǎng)絡(luò)程序設(shè)計(jì)_第2頁(yè)
第2頁(yè) / 共42頁(yè)
Java實(shí)用程序設(shè)計(jì)(西電版)第11章Java網(wǎng)絡(luò)程序設(shè)計(jì)_第3頁(yè)
第3頁(yè) / 共42頁(yè)

下載文檔到電腦,查找使用更方便

9.9 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《Java實(shí)用程序設(shè)計(jì)(西電版)第11章Java網(wǎng)絡(luò)程序設(shè)計(jì)》由會(huì)員分享,可在線閱讀,更多相關(guān)《Java實(shí)用程序設(shè)計(jì)(西電版)第11章Java網(wǎng)絡(luò)程序設(shè)計(jì)(42頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、1 第 11 章 Java 網(wǎng)絡(luò)程序設(shè)計(jì)第 11 章 Java 網(wǎng) 絡(luò) 程 序 設(shè) 計(jì)11.1 網(wǎng)絡(luò)程序設(shè)計(jì)概述11.2 有連接的Socket通信11.3 無(wú)連接的Socket通信11.4 URL通信 2 第 11 章 Java 網(wǎng)絡(luò)程序設(shè)計(jì) 11.1 網(wǎng) 絡(luò) 程 序 設(shè) 計(jì) 概 述Internet上的通信協(xié)議是以TCP/IP協(xié)議簇為基礎(chǔ)的。TCP/IP協(xié)議簇通常分為4層:網(wǎng)絡(luò)接口層、網(wǎng)絡(luò)層、傳輸層和應(yīng)用層,如圖11-1所示。 3 第 11 章 Java 網(wǎng)絡(luò)程序設(shè)計(jì) 圖11-1 TCP/IP協(xié)議簇的4層模型 4 第 11 章 Java 網(wǎng)絡(luò)程序設(shè)計(jì) 11.2 有 連 接 的 Socket通

2、信有連接的Socket通信主要使用包中的Socket類和ServerSocket類,Socket類的對(duì)象主要用于標(biāo)識(shí)一個(gè)通信Socket連接的客戶端和服務(wù)器端,而ServerSocket類的對(duì)象主要用于監(jiān)聽(tīng)客戶端的連接并建立通信Socket連接。 5 第 11 章 Java 網(wǎng)絡(luò)程序設(shè)計(jì)1. IP地 址 類 InetAddressInetAddress類在包中,用來(lái)定義一個(gè)IP地址。該類能夠完成解析IP地址、查詢主機(jī)名等功能。InetAddress類沒(méi)有public的構(gòu)造方法,一般需要通過(guò)調(diào)用該類的靜態(tài)方法返回具體的InetAddress對(duì)象。InetAddress的主要接口方法及其含義如表1

3、1-1所示。 6 第 11 章 Java 網(wǎng)絡(luò)程序設(shè)計(jì) 7 第 11 章 Java 網(wǎng)絡(luò)程序設(shè)計(jì) 8 第 11 章 Java 網(wǎng)絡(luò)程序設(shè)計(jì) 9 第 11 章 Java 網(wǎng)絡(luò)程序設(shè)計(jì) 10 第 11 章 Java 網(wǎng)絡(luò)程序設(shè)計(jì)2. 有 連 接 的 通 信 模 型在Java中,有連接的通信采用流式I/O模型,通信模型見(jiàn)圖11-2??蛻舳薙ocket的典型構(gòu)造方法形如:Socket(InetAddress address,int port ,InetAddress localAddr,int localPort)或 Socket(String host,int port ,InetAddress l

4、ocalAddr,int localPort) 11 第 11 章 Java 網(wǎng)絡(luò)程序設(shè)計(jì) 圖11-2 有連接的客戶端/服務(wù)器通信模型 12 第 11 章 Java 網(wǎng)絡(luò)程序設(shè)計(jì)其中,address為遠(yuǎn)端IP,port為遠(yuǎn)端端口號(hào),host為遠(yuǎn)端主機(jī)名,可選的localAddr為本地IP地址,可選的localPort為與當(dāng)前Socket綁定的本地端口號(hào)。Socket類的主要接口方法及其含義如表11-2所示。ServerSocket的構(gòu)造方法形如:ServerSocket(int port ,int backlog) 13 第 11 章 Java 網(wǎng)絡(luò)程序設(shè)計(jì) 14 第 11 章 Java 網(wǎng)絡(luò)

5、程序設(shè)計(jì)3. 有 連 接 的 通 信 示 例在例11-3中,TCPClient與TCP-Server進(jìn)行有連接的通信。在連接建立后,雙方各自獲得對(duì)方的IP地址字符串和端口號(hào)并在控制臺(tái)顯示。在獲得各自I/O流之后,TCPClient接受從鍵盤輸入的語(yǔ)句,并發(fā)送給TCPServer。TCPServer接收到消息后,判斷其是否為“quit”命令,如果不是,則將收到的消息顯示在控制臺(tái)。此后,TCPServer在收到的消息之前加上字符串“Server reply:”之后,發(fā)送回TCPClient。TCPClient在接收到消息后在控制臺(tái)將消息打印出來(lái)。 15 第 11 章 Java 網(wǎng)絡(luò)程序設(shè)計(jì) 16

6、第 11 章 Java 網(wǎng)絡(luò)程序設(shè)計(jì) 17 第 11 章 Java 網(wǎng)絡(luò)程序設(shè)計(jì) 18 第 11 章 Java 網(wǎng)絡(luò)程序設(shè)計(jì) 19 第 11 章 Java 網(wǎng)絡(luò)程序設(shè)計(jì)4. Socket選 項(xiàng)Socket類還有一些與Socket選項(xiàng)相關(guān)的接口方法,其中的一些主要方法及含義見(jiàn)表11-3。 20 第 11 章 Java 網(wǎng)絡(luò)程序設(shè)計(jì) 21 第 11 章 Java 網(wǎng)絡(luò)程序設(shè)計(jì) 11.3 無(wú) 連 接 的 Socket通 信無(wú)連接的Socket通信主要使用包中的DatagramSocket類,而被發(fā)送的數(shù)據(jù)報(bào)則是DatagramPacket類的對(duì)象。數(shù)據(jù)報(bào)是一種在網(wǎng)絡(luò)上獨(dú)立傳播的包含兩端地址信息的消息

7、。數(shù)據(jù)報(bào)無(wú)法保證消息的可靠到達(dá)和及時(shí)到達(dá),與面向連接的通信方式相比,服務(wù)質(zhì)量較差但開(kāi)銷較小。對(duì)于不需要高質(zhì)量通信服務(wù)的應(yīng)用程序來(lái)說(shuō),使用無(wú)連接的數(shù)據(jù)報(bào)通信方式是簡(jiǎn)便易行的。 22 第 11 章 Java 網(wǎng)絡(luò)程序設(shè)計(jì)1. DatagramPacket類創(chuàng)建DatagramPacket的目的可能有兩個(gè):使用UDP發(fā)送數(shù)據(jù)到遠(yuǎn)端機(jī)器;使用UDP從遠(yuǎn)端機(jī)器接收數(shù)據(jù)。DatagramPacket的構(gòu)造方法至少都包含兩個(gè)參數(shù),其中一個(gè)是字符數(shù)組參數(shù),用于存儲(chǔ)UDP包的內(nèi)容,另一個(gè)是數(shù)據(jù)包的長(zhǎng)度。DatagramPacket的不同構(gòu)造方法可用于發(fā)送和接收的不同場(chǎng)景。當(dāng)構(gòu)造的DatagramPacket用于

8、接收UDP包時(shí),則應(yīng)使用以下構(gòu)造方法:DatagramPacket(byte buffer,int length) 23 第 11 章 Java 網(wǎng)絡(luò)程序設(shè)計(jì)其中,buffer為存放接收到的數(shù)據(jù)報(bào)的字節(jié)數(shù)組,length為接收數(shù)據(jù)的長(zhǎng)度。當(dāng)構(gòu)造的DatagramPacket用于發(fā)送UDP包到一個(gè)遠(yuǎn)程主機(jī)時(shí),則應(yīng)使用以下構(gòu)造方法:DatagramPacket(byte buffer,int length,InetAddress dest_addr,int dest_port)其中,buffer中保存用于填充數(shù)據(jù)報(bào)的內(nèi)容,length為數(shù)據(jù)長(zhǎng)度,dest_addr為目的主機(jī)地址,dest_port

9、為目的端口地址。DatagramPacket類的主要接口方法及其含義如表11-4所示。 24 第 11 章 Java 網(wǎng)絡(luò)程序設(shè)計(jì) 25 第 11 章 Java 網(wǎng)絡(luò)程序設(shè)計(jì)2. 無(wú) 連 接 的 通 信 模 型無(wú)連接的通信模型相比有連接的通信模型來(lái)說(shuō)更為簡(jiǎn)單,其通信模型如圖11-3所示。在無(wú)連接通信過(guò)程中,數(shù)據(jù)收發(fā)的主體是DatagramSocket類的對(duì)象實(shí)例。服務(wù)器和客戶端首先均應(yīng)創(chuàng)建DatagramSocket用以發(fā)送或接收DatagramPacket,DatagramSocket的典型構(gòu)造方法為:DatagramSocket()或 DatagramSocket(int port) 26

10、 第 11 章 Java 網(wǎng)絡(luò)程序設(shè)計(jì)圖11-3 無(wú)連接的客戶端/服務(wù)器通信模型 27 第 11 章 Java 網(wǎng)絡(luò)程序設(shè)計(jì) 28 第 11 章 Java 網(wǎng)絡(luò)程序設(shè)計(jì) 29 第 11 章 Java 網(wǎng)絡(luò)程序設(shè)計(jì)3. 無(wú) 連 接 的 通 信 示 例以下通過(guò)一個(gè)例子說(shuō)明無(wú)連接通信的基本方法。在例11-4中,UDPServer首先創(chuàng)建一個(gè)接收數(shù)據(jù)報(bào)的DatagramPacket,接收UDPClient發(fā)送的空數(shù)據(jù)報(bào),獲得UDPClient的IP地址和端口號(hào)。然后,UDPServer從控制臺(tái)接收一句輸入,將其轉(zhuǎn)化為字節(jié)數(shù)組,并創(chuàng)建用于發(fā)送的DatagramPacket,發(fā)送回UDPClient。UD

11、PClient在收到數(shù)據(jù)報(bào)后在控制臺(tái)上打印其內(nèi)容。 30 第 11 章 Java 網(wǎng)絡(luò)程序設(shè)計(jì) 31 第 11 章 Java 網(wǎng)絡(luò)程序設(shè)計(jì) 32 第 11 章 Java 網(wǎng)絡(luò)程序設(shè)計(jì) 33 第 11 章 Java 網(wǎng)絡(luò)程序設(shè)計(jì) 11.4 URL通 信基于Socket的通信方式允許用戶設(shè)計(jì)自己的應(yīng)用層協(xié)議,實(shí)現(xiàn)更為廣泛和靈活的應(yīng)用程序。而在實(shí)際應(yīng)用中,很多時(shí)候利用已有的應(yīng)用層通信協(xié)議已經(jīng)足夠程序員解決問(wèn)題。例如當(dāng)我們希望訪問(wèn)互聯(lián)網(wǎng)上的一些資源時(shí),可以直接使用HTTP和FTP。這時(shí),可以直接使用基于URL的通信方式。 34 第 11 章 Java 網(wǎng)絡(luò)程序設(shè)計(jì)統(tǒng)一資源定位符(Uniform Res

12、ource Locator,URL)是互聯(lián)網(wǎng)上資源的統(tǒng)一地址形式,URL可以指向互聯(lián)網(wǎng)上的文件、web站點(diǎn)、ftp站點(diǎn)、新聞組、E-mail地址等資源。使用URL訪問(wèn)網(wǎng)絡(luò)資源時(shí),只需要在URL中標(biāo)識(shí)清楚訪問(wèn)資源使用的應(yīng)用層協(xié)議,而不再需要考慮這些協(xié)議的具體處理過(guò)程。URL通常是由一個(gè)字符串描述的,其基本形式如下:協(xié)議標(biāo)識(shí):/主機(jī)名:端口號(hào)路徑名#引用 35 第 11 章 Java 網(wǎng)絡(luò)程序設(shè)計(jì)1. URL類在Java中,URL由包中的URL類表示。URL類的構(gòu)造方法的一般形式主要有以下兩種:URL(String protocol,String host,int port, String fil

13、e)或 URL(URL context, String spec) 36 第 11 章 Java 網(wǎng)絡(luò)程序設(shè)計(jì) 37 第 11 章 Java 網(wǎng)絡(luò)程序設(shè)計(jì) 38 第 11 章 Java 網(wǎng)絡(luò)程序設(shè)計(jì) 39 第 11 章 Java 網(wǎng)絡(luò)程序設(shè)計(jì) 40 第 11 章 Java 網(wǎng)絡(luò)程序設(shè)計(jì)2. 基 于 URL的 網(wǎng) 絡(luò) 資 源 檢 索若想要讀取URL所指向的網(wǎng)絡(luò)資源,可以采用兩種方式:直接使用URL類或者使用URLConnection類。例11-6給出了第一種檢索方式的典型示例,通過(guò)URL類的openStream()方法即可得到讀取URL資源的InputStream,然后將其封裝到過(guò)濾流中逐行讀取資源內(nèi)容,將讀取的內(nèi)容在控制臺(tái)打印并保存到本地文件xidian_home.html中。 41 第 11 章 Java 網(wǎng)絡(luò)程序設(shè)計(jì) 42 第 11 章 Java 網(wǎng)絡(luò)程序設(shè)計(jì)

展開(kāi)閱讀全文
溫馨提示:
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. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!