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

下載本文檔

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

文檔簡介

1、第十四章第十四章 網(wǎng)絡(luò)編程網(wǎng)絡(luò)編程 立體化教材計算機系列 Java程序設(shè)計程序設(shè)計 2 立體化教材計算機系列 Java程序設(shè)計程序設(shè)計 3本章知識重點3132用Applet的方法訪問網(wǎng)絡(luò)資源33創(chuàng)建Socket 34數(shù)據(jù)報的接收和發(fā)送創(chuàng)建和解析URL立體化教材計算機系列 Java程序設(shè)計程序設(shè)計 4本章知識難點33DatagramSocket類 3132TCP和UDP協(xié)議的區(qū)別通過URLConnection連接WWW 立體化教材計算機系列 Java程序設(shè)計程序設(shè)計 5網(wǎng)絡(luò)基礎(chǔ)知識31網(wǎng)絡(luò)編程32TCP與UDP傳輸協(xié)議 網(wǎng)絡(luò)編程的基本模型就是客戶機到服務(wù)器模型,簡單的說就是兩個進程之間相互通訊,

2、然后其中一個必須提供一個固定的位置,而另一個則只需要知道這個固定的位置。并去建立兩者之間的聯(lián)系,然后完成數(shù)據(jù)的通訊就可以了,這里提供固定位置的通常稱為服務(wù)器,而建立聯(lián)系的通常叫做客戶端。TCP在網(wǎng)絡(luò)通信上有極強的生命力,例如遠(yuǎn)程連接(Telnet)和文件傳輸(FTP)都需要不定長度的數(shù)據(jù)被可靠地傳輸。相比之下UDP操作簡單,而且僅需要較少的監(jiān)護,因此通常用于局域網(wǎng)高可靠性的分散系統(tǒng)中client/server應(yīng)用程序。 立體化教材計算機系列 Java程序設(shè)計程序設(shè)計 6URL31URL的組成32創(chuàng)建和解析URL33從URL讀取WWW網(wǎng)絡(luò)資源 34通過URLConnection連接WWW 用Ap

3、plet的方法訪問網(wǎng)絡(luò)資源35立體化教材計算機系列 Java程序設(shè)計程序設(shè)計 7URL的組成URL(Uniform Resource Locator)是統(tǒng)一資源定位器的簡稱,它表示Internet上某一資源的地址。 一個URL地址有以下內(nèi)容組成。protocol:/resourceName協(xié)議名(protocol)指明獲取資源所使用的傳輸協(xié)議,如http、ftp、gopher、file等。資源名(resourceName)則應(yīng)該是資源的完整地址,包括主機名、端口號、文件名或文件內(nèi)部的一個引用。例如:http: / :80/index.html立體化教材計算機系列 Java程序設(shè)計程序設(shè)計 8創(chuàng)

4、建和解析URL我們可以通過下面的構(gòu)造方法來初始化初始化一個URL對象: public URL (String spec);public URL(URL context, String spec); public URL(String protocol, String host, String file);public URL(String protocol, String host, int port, String file);通過類URL所提供的方法來獲取屬性獲取屬性:public String getProtocol():獲取該URL的協(xié)議名。public final Obect get

5、Content():此方法取得傳輸協(xié)議。 public String toString():此方法把URL轉(zhuǎn)化為字符串。public String getHost():獲取該URL的主機名。public int getPort():獲取該URL的端口號,如果沒有設(shè)置端口,返回-1。public String getFile():獲取該URL的文件名。立體化教材計算機系列 Java程序設(shè)計程序設(shè)計 9從URL讀取WWW網(wǎng)絡(luò)資源 當(dāng)我們得到一個URL對象后,就可以通過它讀取指定的WWW資源。這時我們將使用URL的方法openStream(),其定義為:InputStream openStream(

6、);方法openStream()與指定的URL建立連接并返回InputStream類的對象以從這一連接中讀取數(shù)據(jù)。立體化教材計算機系列 Java程序設(shè)計程序設(shè)計 10通過URLConnection連接WWW 類URLConnection也在包中定義,它表示Java程序和URL在網(wǎng)絡(luò)上的通信連接。當(dāng)與一個URL建立連接時。首先要在一個URL對象上通過方法openConnection()生成對應(yīng)的URLConnection對象。例如下面的程序段首先生成一個指向地址http:/ Java程序設(shè)計程序設(shè)計 11通過URLConnection連接WWW 然后用openConnection()打開該URL

7、對象上的一個連接,返回一個URLConnection對象。如果連接過程失敗,將產(chǎn)生IOException。類URLConnection提供了很多方法來設(shè)置或獲取連接參數(shù),程序設(shè)計時最常使用的是getInputStream()和getOurputStream()。3233立體化教材計算機系列 Java程序設(shè)計程序設(shè)計 12用Applet的方法訪問網(wǎng)絡(luò)資源Applet類中也定義了一些可以用來訪問網(wǎng)絡(luò)資源的方法 : 訪問指定網(wǎng)頁 獲取指定URL處的圖像 獲取指定URL處的聲音313233立體化教材計算機系列 Java程序設(shè)計程序設(shè)計 13InetAddress類InetAddress類是Java的I

8、P地址封裝類,主要用來區(qū)分計算機網(wǎng)絡(luò)中的不同節(jié)點,即不同的計算機并對其尋址。每個InetAddress對象中包含了IP地址、主機名等信息,該類定義如下:public final class InetAddress extends object implements Serializable 要創(chuàng)建該類的實例對象,可以通過該類的靜態(tài)方法獲得該對象。這些靜態(tài)方法如下:public static InetAddress getLocalHost()public static InetAddress getByName (String host)public static InetAddress ge

9、tAllByName(String host)立體化教材計算機系列 Java程序設(shè)計程序設(shè)計 14Socket 通訊對于一個功能齊全的Socket,其工作過程包含以下四個基本的步驟:31創(chuàng)建Socket;32打開連接到Socket的輸入/輸出流;33按照一定的協(xié)議對Socket進行讀/寫操作;34關(guān)閉Socket。立體化教材計算機系列 Java程序設(shè)計程序設(shè)計 15創(chuàng)建Socket ServerSocket類類 下面語句將創(chuàng)建一個ServerSocket類,同時在運行該語句的計算機的指定端口處建立一個監(jiān)聽服務(wù):ServerSocket MyListener = new ServerSocket

10、 ( 8000) ; 為了隨時監(jiān)聽可能的Client請求,還應(yīng)該執(zhí)行如下的語句:Socket LinkSocket = MyListener . accept( ) ; 需要結(jié)束監(jiān)聽時,只需用如下的語句關(guān)閉ServerSocket對象:MyListener . close( ); 立體化教材計算機系列 Java程序設(shè)計程序設(shè)計 16創(chuàng)建Socket (續(xù))Socket類類當(dāng)Client程序需要從Server端獲取信息及其他服務(wù)時,應(yīng)該創(chuàng)建一個Socket對象:Socket MySocket = new Socket ( ServerComputerName, 8000) ;Socket對象建立

11、成功之后,就可以在Client和Server之間建立一個連接,并通過這個連接在兩個端點之間傳遞數(shù)據(jù)。OutputStream SocketOs = MySocket. getOutputStream ( );InputStream SocketIs = MySocket getInputStream ( );SocketOs.write(SocketIs.read( );當(dāng)Server和Client端的通信結(jié)束時,可以調(diào)用Socket類的close( )方法來關(guān)閉Socket,拆除連接。MySocket . close( ); 立體化教材計算機系列 Java程序設(shè)計程序設(shè)計 17UDP Soc

12、ket Java中用于無連接的UDP數(shù)據(jù)報通信的類有兩個: DatagramPacket類DatagramSocket類其中DatagramPacket類用于讀取數(shù)據(jù)等信息,DatagramSocket類用于實現(xiàn)數(shù)據(jù)報的發(fā)送和接收過程。立體化教材計算機系列 Java程序設(shè)計程序設(shè)計 18UDP Socket開發(fā)流程類 數(shù)據(jù)報的發(fā)送過程可簡單表述為如下步驟:創(chuàng)建DatagramPacket對象其中包含如下信息:要發(fā)送的數(shù)據(jù);數(shù)據(jù)報分組長度;發(fā)送目的地的主機IP地址和目的端口號。在指定的或可用的本機端口創(chuàng)建DatagramSocket對象。調(diào)用該DatagramSocket的send( )方法,以DatagramPacket對象為參數(shù)發(fā)送數(shù)據(jù)報。立體化教材計算機系列 Java程序設(shè)計程序設(shè)計 19UDP Socket開發(fā)流程類 (續(xù))數(shù)據(jù)報的接收過程可簡單表述為如下步驟:創(chuàng)建一個用于接收數(shù)據(jù)報的DatagramPacket對象,其中包含空白數(shù)據(jù)緩沖區(qū)和指定數(shù)據(jù)報分組長度。在指定的或可用的本機端口創(chuàng)建DatagramSocket對象。調(diào)用DatagramSocket對象的receive( )方法,以DatagramPacket對象為參數(shù)接收數(shù)據(jù)報。接收到的信息有:收

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論