Java高級程序設(shè)計(第二版)課件第8章 Java網(wǎng)絡(luò)編程_第1頁
Java高級程序設(shè)計(第二版)課件第8章 Java網(wǎng)絡(luò)編程_第2頁
Java高級程序設(shè)計(第二版)課件第8章 Java網(wǎng)絡(luò)編程_第3頁
Java高級程序設(shè)計(第二版)課件第8章 Java網(wǎng)絡(luò)編程_第4頁
Java高級程序設(shè)計(第二版)課件第8章 Java網(wǎng)絡(luò)編程_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Java高級程序設(shè)計第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編寫TCP網(wǎng)絡(luò)程序8.4 Java編寫UDP網(wǎng)絡(luò)程序本章目標(biāo)

Java網(wǎng)絡(luò)編程API

理解客戶/服務(wù)器模式

TCP套接字網(wǎng)絡(luò)編程本章任務(wù)任務(wù)1讀取網(wǎng)頁文件任務(wù)2一對一聊天室任務(wù)3多人聊天室8.1 網(wǎng)絡(luò)編程基礎(chǔ)8.1.1統(tǒng)一資源定位符URLURL(UniformResourceLocator,統(tǒng)一資源定位符),代表了資源在Internet/Intranet上的位置,是網(wǎng)上資源的一個指針一個完整的URL的格式如下:協(xié)議://主機(jī)域名:端口/路徑文件名/#錨點?請求字符串8.1.2Internet編址與端口號Internet上的每一臺計算機(jī)都有一個地址。Internet地址是網(wǎng)絡(luò)上標(biāo)識每臺計算機(jī)的唯一定義的數(shù)IP地址是以數(shù)字來代表的主機(jī)地址,比較難記,為了使用和記憶方便,也為了便于網(wǎng)絡(luò)地址的分層管理和分配,Internet在1984年采用了域名管理系統(tǒng)(DomainNameSystem)本地操作系統(tǒng)會給那些有需求的進(jìn)程分配協(xié)議端口(protocolport,即常說的端口),每個協(xié)議端口由一個正整數(shù)標(biāo)識,如:80、139、445等。TCP/IP為特定協(xié)議保留了低端的1024個端口。如,端口21是FTP端口,23是Telnet端口,25是E-mail端口,110是POP3端口,80是HTTP端口,119是為網(wǎng)絡(luò)新聞端口等當(dāng)目的主機(jī)接收到數(shù)據(jù)報后,將根據(jù)報文首部的目的端口號,把數(shù)據(jù)發(fā)送到相應(yīng)端口,而與此端口相對應(yīng)的那個進(jìn)程將會領(lǐng)取數(shù)據(jù)并等待下一組數(shù)據(jù)的到來。8.1.3客戶/服務(wù)器模式客戶機(jī)/服務(wù)器(Client/Server)模式如圖所示8.1.4TCP/IP與UDP協(xié)議要使計算機(jī)連成的網(wǎng)絡(luò)能夠互通信息,需要有一組共同遵守的通信標(biāo)準(zhǔn),這就是網(wǎng)絡(luò)協(xié)議,不同的計算機(jī)之間必須使用相同的通訊協(xié)議才能進(jìn)行通信。在Internet中TCP/IP協(xié)議是使用最為廣泛的通訊協(xié)議。TCP協(xié)議負(fù)責(zé)把數(shù)據(jù)分成若干個數(shù)據(jù)包,并給每個數(shù)據(jù)包加上包頭(就像給一封信加上信封),包頭上有相應(yīng)的編號,以保證在數(shù)據(jù)接收端能將數(shù)據(jù)還原為原來的格式IP協(xié)議在每個包頭上再加上接收端主機(jī)地址,這樣數(shù)據(jù)找到自己要去的地方(就像信封上要寫明地址一樣),如果傳輸過程中出現(xiàn)數(shù)據(jù)丟失、數(shù)據(jù)失真等情況,TCP協(xié)議會自動要求數(shù)據(jù)重新傳輸,并重新組包IP協(xié)議保證數(shù)據(jù)的傳輸,TCP協(xié)議保證數(shù)據(jù)傳輸?shù)馁|(zhì)量UDP協(xié)議的主要作用是將網(wǎng)絡(luò)數(shù)據(jù)流量壓縮成數(shù)據(jù)報的形式。一個典型的數(shù)據(jù)報就是一個二進(jìn)制數(shù)據(jù)的傳輸單位。每一個數(shù)據(jù)報的前8個字節(jié)用來包含報頭信息,剩余字節(jié)則用來包含具體的傳輸數(shù)據(jù)UDP和TCP協(xié)議的主要區(qū)別是兩者在如何實現(xiàn)信息的可靠傳遞方面不同8.2 Java網(wǎng)絡(luò)編程API任務(wù)1讀取網(wǎng)頁文件編程實現(xiàn):讀取指定網(wǎng)頁文件的屬性和內(nèi)容,并回顯至控制臺。運行效果如圖所示。知識點:URL類、URLConnection類、InetAddress類Java的網(wǎng)絡(luò)編程API所提供的基本網(wǎng)絡(luò)類和接口,都包含在包中。包所包含的類和接口,見教材表8-2、表8-3一、URL類Java預(yù)置了.URL類來解決網(wǎng)絡(luò)資源的傳輸問題。它提供了許多方法來完成對遠(yuǎn)程站點的訪問和操作,使得網(wǎng)絡(luò)編程變得非常容易。URL類常用一些get方法獲取URL的信息,除了端口為int類型外其余都是String類型的。URL類的常用方法,見教材表8-4二、URLConnection類URLConnection類是一個抽象類,是實現(xiàn)應(yīng)用程序和URL之間通信連接的所有類的超類,該類的實例可以用來讀寫URL所指的資源在創(chuàng)建了URL對象之后,可以使用該URL對象的openConnection()方法來創(chuàng)建URLConnection對象,之后就可以使用下面的方法完成各種各樣的操作三、InetAddress類.InetAddress類的對象封裝了遠(yuǎn)程主機(jī)的IP地址和域名,其中包含很多和Java網(wǎng)絡(luò)編程有關(guān)的方法和屬性InetAddress類沒有公共的構(gòu)造方法,但是可以通過一些靜態(tài)的方法來得到InetAddress對象InetAddress類常用的方法,見教材表8-68.3 Java編寫TCP網(wǎng)絡(luò)程序任務(wù)2一對一聊天室編程實現(xiàn):基于客戶機(jī)/服務(wù)器模式的一對一聊天室,服務(wù)器啟動后,客戶機(jī)可連接服務(wù)器,并且客戶機(jī)與服務(wù)器可以對話。運行效果如圖所示。知識點:TCP/IP套接字區(qū)分不同應(yīng)用程序進(jìn)程間的網(wǎng)絡(luò)通信和連接,主要有3個參數(shù):通信的目的IP地址、使用的傳輸層協(xié)議(TCP或UDP)和使用的端口號。Socket的原意是“插座”,通過將這3個參數(shù)結(jié)合起來,與一個“插座”Socket綁定,應(yīng)用層就可以和傳輸層通過套接字接口區(qū)分來自不同應(yīng)用程序進(jìn)程或網(wǎng)絡(luò)連接的通信,實現(xiàn)數(shù)據(jù)傳輸?shù)牟l(fā)服務(wù)。一、服務(wù)器套接字要實現(xiàn)客戶機(jī)/服務(wù)器模式的網(wǎng)絡(luò)程序,需要先創(chuàng)建和運行服務(wù)器端的程序,再創(chuàng)建和運行客戶端程序,服務(wù)器監(jiān)聽是否有客戶機(jī)的連接請求,客戶機(jī)主動連接服務(wù)器,連接成功后后客戶機(jī)與服務(wù)器就可以進(jìn)行通信了ServerSocket是服務(wù)器套接字,它監(jiān)聽等待客戶機(jī)的請求,它基于客戶機(jī)的請求執(zhí)行某些操作,然后可能向請求者返回結(jié)果TCP/IP協(xié)議套接字的傳輸過程二、客戶套接字當(dāng)客戶程序需要與服務(wù)器程序通信的時候,客戶程序需要在客戶機(jī)創(chuàng)建一個Socket對象如果創(chuàng)建了一個Socket對象,那么它可能通過調(diào)用Socket的getInputStream()方法從服務(wù)程序獲得輸入流讀傳送來的信息,也可能通過調(diào)用Socket的getOutputStream()方法獲得輸出流來發(fā)送消息。在讀寫活動完成之后,客戶程序調(diào)用close()方法關(guān)閉流和流套接字任務(wù)3多人聊天室編程實現(xiàn)一個多人聊天室,每個客戶連上聊天服務(wù)器后都可以發(fā)言,聊天室的所有人也都看得到發(fā)言。運行效果如圖所示,分別啟動多個客戶端,每個客戶端的客戶發(fā)言其他聊天室中的客戶也都看得到8.4 Java編寫UDP網(wǎng)絡(luò)程序如果將套接字通信方式比喻成“打電話”,那么UDP通信方式就可以看作是“發(fā)送郵件”的過程基于UDP的基本通信模式:(1)將數(shù)據(jù)打包,稱為數(shù)據(jù)包,然后將數(shù)據(jù)發(fā)往目的地(2)接收別人發(fā)來的數(shù)據(jù)包,然后查看數(shù)據(jù)包中的內(nèi)容實訓(xùn)任務(wù)[實訓(xùn)8-1]簡述socket的定義,在建立socket連接時服務(wù)器和客戶端有什么

溫馨提示

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

評論

0/150

提交評論