版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Java高級(jí)程序設(shè)計(jì)第8章Java網(wǎng)絡(luò)編程第8章Java網(wǎng)絡(luò)編程8.1 網(wǎng)絡(luò)編程基礎(chǔ)8.2 Java網(wǎng)絡(luò)編程API8.3 Java編寫(xiě)TCP網(wǎng)絡(luò)程序8.4 Java編寫(xiě)UDP網(wǎng)絡(luò)程序本章目標(biāo)
Java網(wǎng)絡(luò)編程API
理解客戶/服務(wù)器模式
TCP套接字網(wǎng)絡(luò)編程本章任務(wù)任務(wù)1讀取網(wǎng)頁(yè)文件任務(wù)2一對(duì)一聊天室任務(wù)3多人聊天室8.1 網(wǎng)絡(luò)編程基礎(chǔ)8.1.1統(tǒng)一資源定位符URLURL(UniformResourceLocator,統(tǒng)一資源定位符),代表了資源在Internet/Intranet上的位置,是網(wǎng)上資源的一個(gè)指針一個(gè)完整的URL的格式如下:協(xié)議://主機(jī)域名:端口/路徑文件名/#錨點(diǎn)?請(qǐng)求字符串8.1.2Internet編址與端口號(hào)Internet上的每一臺(tái)計(jì)算機(jī)都有一個(gè)地址。Internet地址是網(wǎng)絡(luò)上標(biāo)識(shí)每臺(tái)計(jì)算機(jī)的唯一定義的數(shù)IP地址是以數(shù)字來(lái)代表的主機(jī)地址,比較難記,為了使用和記憶方便,也為了便于網(wǎng)絡(luò)地址的分層管理和分配,Internet在1984年采用了域名管理系統(tǒng)(DomainNameSystem)本地操作系統(tǒng)會(huì)給那些有需求的進(jìn)程分配協(xié)議端口(protocolport,即常說(shuō)的端口),每個(gè)協(xié)議端口由一個(gè)正整數(shù)標(biāo)識(shí),如:80、139、445等。TCP/IP為特定協(xié)議保留了低端的1024個(gè)端口。如,端口21是FTP端口,23是Telnet端口,25是E-mail端口,110是POP3端口,80是HTTP端口,119是為網(wǎng)絡(luò)新聞端口等當(dāng)目的主機(jī)接收到數(shù)據(jù)報(bào)后,將根據(jù)報(bào)文首部的目的端口號(hào),把數(shù)據(jù)發(fā)送到相應(yīng)端口,而與此端口相對(duì)應(yīng)的那個(gè)進(jìn)程將會(huì)領(lǐng)取數(shù)據(jù)并等待下一組數(shù)據(jù)的到來(lái)。8.1.3客戶/服務(wù)器模式客戶機(jī)/服務(wù)器(Client/Server)模式如圖所示8.1.4TCP/IP與UDP協(xié)議要使計(jì)算機(jī)連成的網(wǎng)絡(luò)能夠互通信息,需要有一組共同遵守的通信標(biāo)準(zhǔn),這就是網(wǎng)絡(luò)協(xié)議,不同的計(jì)算機(jī)之間必須使用相同的通訊協(xié)議才能進(jìn)行通信。在Internet中TCP/IP協(xié)議是使用最為廣泛的通訊協(xié)議。TCP協(xié)議負(fù)責(zé)把數(shù)據(jù)分成若干個(gè)數(shù)據(jù)包,并給每個(gè)數(shù)據(jù)包加上包頭(就像給一封信加上信封),包頭上有相應(yīng)的編號(hào),以保證在數(shù)據(jù)接收端能將數(shù)據(jù)還原為原來(lái)的格式IP協(xié)議在每個(gè)包頭上再加上接收端主機(jī)地址,這樣數(shù)據(jù)找到自己要去的地方(就像信封上要寫(xiě)明地址一樣),如果傳輸過(guò)程中出現(xiàn)數(shù)據(jù)丟失、數(shù)據(jù)失真等情況,TCP協(xié)議會(huì)自動(dòng)要求數(shù)據(jù)重新傳輸,并重新組包IP協(xié)議保證數(shù)據(jù)的傳輸,TCP協(xié)議保證數(shù)據(jù)傳輸?shù)馁|(zhì)量UDP協(xié)議的主要作用是將網(wǎng)絡(luò)數(shù)據(jù)流量壓縮成數(shù)據(jù)報(bào)的形式。一個(gè)典型的數(shù)據(jù)報(bào)就是一個(gè)二進(jìn)制數(shù)據(jù)的傳輸單位。每一個(gè)數(shù)據(jù)報(bào)的前8個(gè)字節(jié)用來(lái)包含報(bào)頭信息,剩余字節(jié)則用來(lái)包含具體的傳輸數(shù)據(jù)UDP和TCP協(xié)議的主要區(qū)別是兩者在如何實(shí)現(xiàn)信息的可靠傳遞方面不同8.2 Java網(wǎng)絡(luò)編程API任務(wù)1讀取網(wǎng)頁(yè)文件編程實(shí)現(xiàn):讀取指定網(wǎng)頁(yè)文件的屬性和內(nèi)容,并回顯至控制臺(tái)。運(yùn)行效果如圖所示。知識(shí)點(diǎn):URL類、URLConnection類、InetAddress類Java的網(wǎng)絡(luò)編程API所提供的基本網(wǎng)絡(luò)類和接口,都包含在包中。包所包含的類和接口,見(jiàn)教材表8-2、表8-3一、URL類Java預(yù)置了.URL類來(lái)解決網(wǎng)絡(luò)資源的傳輸問(wèn)題。它提供了許多方法來(lái)完成對(duì)遠(yuǎn)程站點(diǎn)的訪問(wèn)和操作,使得網(wǎng)絡(luò)編程變得非常容易。URL類常用一些get方法獲取URL的信息,除了端口為int類型外其余都是String類型的。URL類的常用方法,見(jiàn)教材表8-4二、URLConnection類URLConnection類是一個(gè)抽象類,是實(shí)現(xiàn)應(yīng)用程序和URL之間通信連接的所有類的超類,該類的實(shí)例可以用來(lái)讀寫(xiě)URL所指的資源在創(chuàng)建了URL對(duì)象之后,可以使用該URL對(duì)象的openConnection()方法來(lái)創(chuàng)建URLConnection對(duì)象,之后就可以使用下面的方法完成各種各樣的操作三、InetAddress類.InetAddress類的對(duì)象封裝了遠(yuǎn)程主機(jī)的IP地址和域名,其中包含很多和Java網(wǎng)絡(luò)編程有關(guān)的方法和屬性InetAddress類沒(méi)有公共的構(gòu)造方法,但是可以通過(guò)一些靜態(tài)的方法來(lái)得到InetAddress對(duì)象InetAddress類常用的方法,見(jiàn)教材表8-68.3 Java編寫(xiě)TCP網(wǎng)絡(luò)程序任務(wù)2一對(duì)一聊天室編程實(shí)現(xiàn):基于客戶機(jī)/服務(wù)器模式的一對(duì)一聊天室,服務(wù)器啟動(dòng)后,客戶機(jī)可連接服務(wù)器,并且客戶機(jī)與服務(wù)器可以對(duì)話。運(yùn)行效果如圖所示。知識(shí)點(diǎn):TCP/IP套接字區(qū)分不同應(yīng)用程序進(jìn)程間的網(wǎng)絡(luò)通信和連接,主要有3個(gè)參數(shù):通信的目的IP地址、使用的傳輸層協(xié)議(TCP或UDP)和使用的端口號(hào)。Socket的原意是“插座”,通過(guò)將這3個(gè)參數(shù)結(jié)合起來(lái),與一個(gè)“插座”Socket綁定,應(yīng)用層就可以和傳輸層通過(guò)套接字接口區(qū)分來(lái)自不同應(yīng)用程序進(jìn)程或網(wǎng)絡(luò)連接的通信,實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)牟l(fā)服務(wù)。一、服務(wù)器套接字要實(shí)現(xiàn)客戶機(jī)/服務(wù)器模式的網(wǎng)絡(luò)程序,需要先創(chuàng)建和運(yùn)行服務(wù)器端的程序,再創(chuàng)建和運(yùn)行客戶端程序,服務(wù)器監(jiān)聽(tīng)是否有客戶機(jī)的連接請(qǐng)求,客戶機(jī)主動(dòng)連接服務(wù)器,連接成功后后客戶機(jī)與服務(wù)器就可以進(jìn)行通信了ServerSocket是服務(wù)器套接字,它監(jiān)聽(tīng)等待客戶機(jī)的請(qǐng)求,它基于客戶機(jī)的請(qǐng)求執(zhí)行某些操作,然后可能向請(qǐng)求者返回結(jié)果TCP/IP協(xié)議套接字的傳輸過(guò)程二、客戶套接字當(dāng)客戶程序需要與服務(wù)器程序通信的時(shí)候,客戶程序需要在客戶機(jī)創(chuàng)建一個(gè)Socket對(duì)象如果創(chuàng)建了一個(gè)Socket對(duì)象,那么它可能通過(guò)調(diào)用Socket的getInputStream()方法從服務(wù)程序獲得輸入流讀傳送來(lái)的信息,也可能通過(guò)調(diào)用Socket的getOutputStream()方法獲得輸出流來(lái)發(fā)送消息。在讀寫(xiě)活動(dòng)完成之后,客戶程序調(diào)用close()方法關(guān)閉流和流套接字任務(wù)3多人聊天室編程實(shí)現(xiàn)一個(gè)多人聊天室,每個(gè)客戶連上聊天服務(wù)器后都可以發(fā)言,聊天室的所有人也都看得到發(fā)言。運(yùn)行效果如圖所示,分別啟動(dòng)多個(gè)客戶端,每個(gè)客戶端的客戶發(fā)言其他聊天室中的客戶也都看得到8.4 Java編寫(xiě)UDP網(wǎng)絡(luò)程序如果將套接字通信方式比喻成“打電話”,那么UDP通信方式就可以看作是“發(fā)送郵件”的過(guò)程基于UDP的基本通信模式:(1)將數(shù)據(jù)打包,稱為數(shù)據(jù)包,然后將數(shù)據(jù)發(fā)往目的地(2)接收別人發(fā)來(lái)的數(shù)據(jù)包,然后查看數(shù)據(jù)包中的內(nèi)容實(shí)訓(xùn)任務(wù)[實(shí)訓(xùn)8-1]簡(jiǎn)述socket的定義,在建立socket連接時(shí)服務(wù)器和客戶端有什么
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 連云港2025年江蘇連云港市贛榆區(qū)衛(wèi)生健康委員會(huì)所屬事業(yè)單位招聘編制外衛(wèi)生專業(yè)技術(shù)人員35人筆試歷年參考題庫(kù)附帶答案詳解
- 二零二五年度文化產(chǎn)業(yè)發(fā)展出資合同3篇
- 二零二五年度鋼結(jié)構(gòu)安全責(zé)任協(xié)議書(shū)附件七2篇
- 二零二五年社交媒體廣告運(yùn)營(yíng)與效果分析協(xié)議3篇
- 二零二五年度版權(quán)轉(zhuǎn)讓合同:作家與出版社之間的版權(quán)轉(zhuǎn)讓協(xié)議3篇
- 小手拉大手童心繪安全
- 二零二五年度防水材料省級(jí)代理權(quán)轉(zhuǎn)讓合同范本2篇
- 八年級(jí)上學(xué)期1月期末語(yǔ)文試題(PDF版含答案)-1
- 太和區(qū)八年級(jí)上學(xué)期語(yǔ)文第二次月考試卷
- 工程資料基礎(chǔ)知識(shí)
- 四川省巴中市2023-2024學(xué)年高二上學(xué)期期末考試物理試題【含答案解析】
- 《兩小兒辯日》教學(xué)案例:培養(yǎng)學(xué)生的思辨能力
- 電腦教室設(shè)計(jì)方案
- 現(xiàn)代物業(yè)服務(wù)體系實(shí)操系列物業(yè)服務(wù)溝通與投訴解決指南
- 2024年電力儲(chǔ)能行業(yè)培訓(xùn)資料
- MSOP(測(cè)量標(biāo)準(zhǔn)作業(yè)規(guī)范)測(cè)量SOP
- 2022物聯(lián)網(wǎng)操作系統(tǒng)安全白皮書(shū)
- 提高留置針規(guī)范使用率
- 垃圾清運(yùn)服務(wù)投標(biāo)方案(技術(shù)方案)
- 高速公路環(huán)保水保方案
- 2019年簡(jiǎn)單壓力容器安全技術(shù)規(guī)程正式
評(píng)論
0/150
提交評(píng)論