第11章-網(wǎng)絡編程ppt課件(全)_第1頁
第11章-網(wǎng)絡編程ppt課件(全)_第2頁
第11章-網(wǎng)絡編程ppt課件(全)_第3頁
第11章-網(wǎng)絡編程ppt課件(全)_第4頁
第11章-網(wǎng)絡編程ppt課件(全)_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第11章 網(wǎng)絡編程第11章 網(wǎng)絡編程ppt課件(全)本章學習目標掌握計算機網(wǎng)絡的基本概念理解TCP/IP和UDP協(xié)議掌握基于TCP協(xié)議的網(wǎng)絡編程技術掌握基于UDP協(xié)議的網(wǎng)絡編程技術第11章 網(wǎng)絡編程ppt課件(全)任務1:什么是計算機網(wǎng)絡【任務內容】了解計算機網(wǎng)絡【能力目標】了解計算機網(wǎng)絡的概念、組成和功能11.1 網(wǎng)絡編程的基礎知識第11章 網(wǎng)絡編程ppt課件(全)計算機網(wǎng)絡(Computer Network)是以共享資源(硬件、軟件和數(shù)據(jù)等)為目的而連接起來的,在協(xié)議控制下由一臺或多臺計算機系統(tǒng)、若干臺終端設備、數(shù)據(jù)傳輸設備等組成的系統(tǒng)之集合。 計算機網(wǎng)絡的功能主要表現(xiàn)在硬件資源共享、軟件

2、資源共享和用戶間信息交換三個方面。第11章 網(wǎng)絡編程ppt課件(全)任務2:協(xié)議和計算機網(wǎng)絡體系結構【任務內容】了解協(xié)議和計算機網(wǎng)絡體系結構【能力目標】了解網(wǎng)絡協(xié)議和組成要素了解計算機網(wǎng)絡體系結構的概念和由來11.1 網(wǎng)絡編程的基礎知識第11章 網(wǎng)絡編程ppt課件(全)要想讓兩臺計算機進行通信,必須使它們采用相同的信息交換規(guī)則。我們把在計算機網(wǎng)絡中用于規(guī)定信息的格式以及如何發(fā)送和接收信息的一套規(guī)則稱為網(wǎng)絡協(xié)議(network protocol)或通信協(xié)議(communication protocol)。其中包含三個要素,即語法(Syntax)、語義(Semantics)和時序(Timing)。

3、為了更方便地實現(xiàn)計算機設備之間的通信,我們定義和描述一組用于計算機及其通信設施之間互連的標準和規(guī)范的集合,稱為計算機網(wǎng)絡體系結構(Network Architecture)。 1974年,IBM公司提出了世界上第一個網(wǎng)絡體系結構(System Network Architecture,SNA)。此后,許多公司紛紛提出各自的網(wǎng)絡體系結構,如ISO/OSI參考模型、TCP/IP體系結構、Netware體系結構、Windows NT體系結構等。 第11章 網(wǎng)絡編程ppt課件(全)任務3:TCP/IP體系結構【任務內容】了解TCP/IP體系結構【能力目標】了解TCP/IP協(xié)議的概念和功能了解TCP/I

4、P協(xié)議的結構和特點了解在TCP/IP參考模型中每層的具體協(xié)議和其功能了解TCP與UDP的特點和區(qū)別11.1 網(wǎng)絡編程的基礎知識第11章 網(wǎng)絡編程ppt課件(全)TCP/IP協(xié)議(Transfer Control Protocol/Internet Protocol)叫做傳輸控制/網(wǎng)際協(xié)議,又叫網(wǎng)絡通信協(xié)議,它包括上百個各種功能的協(xié)議,如遠程登錄、文件傳輸和電子郵件等,而TCP協(xié)議和IP協(xié)議是保證數(shù)據(jù)完整傳輸?shù)膬蓚€基本的重要協(xié)議。通常說TCP/IP 是Internet協(xié)議族,而不單單是TCP和IP。TCP/IP協(xié)議的基本傳輸單位是數(shù)據(jù)包 (datagram)。 TCP/IP協(xié)議數(shù)據(jù)的傳輸基于TC

5、P/IP協(xié)議的四層結構:應用層、傳輸層、網(wǎng)絡層、接口層 。第11章 網(wǎng)絡編程ppt課件(全)TCP/IP協(xié)議具有以下特點:協(xié)議標準具有開放性,其獨立于特定的計算機硬件及操作系統(tǒng),可以免費使用。統(tǒng)一分配網(wǎng)絡地址,使得整個TCP/IP設備在網(wǎng)絡中都具有唯一的IP地址。實現(xiàn)了高層協(xié)議的標準化,能為用戶提供多種可靠的服務。第11章 網(wǎng)絡編程ppt課件(全)UDP:(1)每個數(shù)據(jù)報中都給出了完整的地址信息,因此無須建立發(fā)送方和接收方的連接。(2)UDP傳輸數(shù)據(jù)時是有大小限制的,每個被傳輸?shù)臄?shù)據(jù)報必須限定在64KB之內。(3)UDP是一個不可靠的協(xié)議,發(fā)送方所發(fā)送的數(shù)據(jù)報并不一定以相同的次序到達接收方。T

6、CP:(1)面向連接的協(xié)議,在socket之間進行數(shù)據(jù)傳輸之前必然要建立連接,所以在TCP中需要連接時間。(2)TCP傳輸數(shù)據(jù)大小限制,一旦連接建立起來,雙方的socket就可以按統(tǒng)一的格式傳輸大的數(shù)據(jù)。(3)TCP是一個可靠的協(xié)議,它確保接收方完全正確地獲取發(fā)送方所發(fā)送的全部數(shù)據(jù)。實際應用:(1)TCP在網(wǎng)絡通信上有極強的生命力,例如遠程連接(Telnet)和文件傳輸(FTP)都需要不定長度的數(shù)據(jù)被可靠地傳輸。但是可靠的傳輸是要付出代價的,對數(shù)據(jù)內容正確性的檢驗必然占用計算機的處理時間和網(wǎng)絡的帶寬,因此TCP傳輸?shù)男什蝗鏤DP高。(2)UDP操作簡單,且僅需要較少的監(jiān)護,因此通常用于局域網(wǎng)

7、高可靠性的分散系統(tǒng)中Client/Server應用程序。例如視頻會議系統(tǒng),并不要求音頻視頻數(shù)據(jù)絕對地正確,只要保證連貫性就可以了,這種情況下顯然使用UDP會更合理一些。第11章 網(wǎng)絡編程ppt課件(全)任務4:通信端口【任務內容】了解通信端口【能力目標】了解通信端口的概念及其意義11.1 網(wǎng)絡編程的基礎知識第11章 網(wǎng)絡編程ppt課件(全)一個IP地址的端口可以有65536個端口是通過端口號來標記的,端口號只有整數(shù),范圍是從0 到65535。端口號是一個標記機器邏輯通信信道的正整數(shù),端口號不是物理實體。IP地址和端口號組成了所謂的Socket。 端口號0到1023被系統(tǒng)保留,專門用于那些通用的

8、服務,例如,對于每個TCP/IP實現(xiàn)來說,F(xiàn)TP服務器的TCP端口號都是21,每個Telnet服務器的TCP端口號都是23,每個TFTP(簡單文件傳送協(xié)議)服務器的UDP端口號都是69,HTTP默認是80 網(wǎng)絡上的不同服務是通過“IP+端口號”來區(qū)分,因而一臺主機可以提供web服務、FTP服務等。第11章 網(wǎng)絡編程ppt課件(全)任務5:URL概念【任務內容】了解URL概念【能力目標】了解URL概念和語法格式11.1 網(wǎng)絡編程的基礎知識第11章 網(wǎng)絡編程ppt課件(全)URL(Uniform Resource Locator)即統(tǒng)一資源定位器,表示Internet上某一資源的地址,Intern

9、et上的資源包括HTML文件、圖像文件、動畫文件、聲音文件以及其他任何內容(執(zhí)行數(shù)據(jù)庫查詢和Internet搜索)。URL的語法格式是::/:/# 例如:(1) 傳輸協(xié)議:/主機名(2)68 傳輸協(xié)議:/IP地址(3)https:/localhost:80/home/index.htm#top 傳輸協(xié)議:/主機名:端口號/文件名#引用第11章 網(wǎng)絡編程ppt課件(全)任務6:Java基本網(wǎng)絡支持【任務內容】了解Java基本網(wǎng)絡支持【能力目標】了解Java的網(wǎng)絡編程的層次了解Java語言提供的相關網(wǎng)絡功能類11.2 Java的基本網(wǎng)絡支持第11章 網(wǎng)絡編程ppt課件(全)Java的網(wǎng)絡編程分為三

10、個層次。(1)最高一級的網(wǎng)絡通信就是從網(wǎng)絡上下載小應用程序,客戶端瀏覽器通過HTML文件中的標記來識別小程序,并解析小程序的屬性,通過網(wǎng)絡獲取小程序的字節(jié)碼文件。(2)次一級的通信就是通過類URL對象指明文件所在的位置,并從網(wǎng)絡上下載聲音和圖像,然后對聲音播放和圖像顯示。(3)最低一級的通信是利用包中提供的類直接在程序中實現(xiàn)網(wǎng)絡通信。針對不同層次的網(wǎng)絡通信,Java語言提供的網(wǎng)絡功能有4大類:URL、InetAddress、Socket、Datagram。 第11章 網(wǎng)絡編程ppt課件(全)Java網(wǎng)絡編程中主要使用包中的以下類。面向IP層的類:InetAddress。面向應用層的類:URL、

11、URLConnection。TCP協(xié)議相關類:Socket、ServerSocket。UDP協(xié)議的類:DatagramPacket、DatagramSocket、MulticastSocket。第11章 網(wǎng)絡編程ppt課件(全)在使用包中的這些類時,可能產生的異常如下:BindException:套接字綁定異常類。ConnectException:套接字綁定異常類。ProtocolException:遠程連接異常類。SocketException:套接字異常類。UnKnownHostException:未知定主機異常類。UnKnownServiceException:未知服務異常類。Malfo

12、rmedURLException:錯誤的URL異常類。NoRouteToHostException:無路由器而無法連接主機異常類。第11章 網(wǎng)絡編程ppt課件(全)任務7:基于URL的網(wǎng)絡程序設計編程【任務內容】URL類的使用【能力目標】掌握URL類的構造方法掌握獲取URL對象相關信息的常用方法【任務分析】要實現(xiàn)該任務首先要用URL類去創(chuàng)建一個URL對象,并指定其連接的URL地址,然后使用其常用方法將其信息顯示出來。11.3 基于TCP協(xié)議的網(wǎng)絡編程第11章 網(wǎng)絡編程ppt課件(全)/案例:URLDemo.java,創(chuàng)建一個參數(shù)為的URL對象,并輸出該對象的信息 import .*;publi

13、c class URLDemo public static void main(String args) try URL url = new URL();/ 創(chuàng)建URL對象 System.out.println(協(xié)議 : + url.getProtocol();/ 顯示URL的協(xié)議 System.out.println(主機 : + url.getHost();/ 顯示URL中的主機名 System.out.println(文件名 : + url.getFile();/ 顯示URL中的文件名 System.out.println(端口號 : + url.getPort();/ 顯示URL中的端

14、口號 System.out.println(引用 : + url.getRef();/ 顯示URL中的引用 System.out.println(查詢 : + url.getQuery();/ 顯示URL中的查詢 System.out.println(路徑 : + url.getPath();/ 顯示URL中的文件路徑 System.out.println(用戶信息 : +url.getUserInfo();/ 顯示URL中的用戶信息 System.out.println(權限 : + url.getAuthority();/ 顯示URL中的權限 catch (MalformedURLExce

15、ption e) System.out.println(error : + e.getMessage(); / 顯示異常信息第11章 網(wǎng)絡編程ppt課件(全)1. URL類URL類表示一個統(tǒng)一資源定位器,它是指向互聯(lián)網(wǎng)上某一資源的指針,這個資源可以是主機上的一個文件或路徑,也可以是文件上的一個引用。 示例: URLReader .java第11章 網(wǎng)絡編程ppt課件(全)2. URLConnection類URLConnection類支持URL連接的輸入/輸出流方式的通信,并可以獲得URL對象資源的相關信息。 示例:URLConnectionDemo .java第11章 網(wǎng)絡編程ppt課件(全)

16、3. InetAddress類InetAddress類用于表示一個IP地址。 示例:InetAddressDemo .java第11章 網(wǎng)絡編程ppt課件(全)任務8:基于Socket的Java網(wǎng)絡編程【任務內容】基于套接字的網(wǎng)絡通信程序設計【能力目標】掌握套接字通信的程序設計思想及開發(fā)流程掌握ServerSocket類的使用方法掌握Socket類的使用方法學會實現(xiàn)客戶端與服務器端之間互相發(fā)送、接收消息【任務分析】先使用ServerSocket類創(chuàng)建聊天服務器,利用ServerSocket類對象的accept()方法來阻塞等待客戶請求,當請求到來則產生一個Socket對象,輸出客戶端請求信息,

17、并給客戶端返回服務器端的輸入信息。11.3 基于TCP協(xié)議的網(wǎng)絡編程第11章 網(wǎng)絡編程ppt課件(全)案例:TalkServer.java /TalkClient.java 上例實現(xiàn)了使用應用層協(xié)議訪問網(wǎng)絡資源 ,但是在網(wǎng)絡應用中,僅僅使用這些應用層協(xié)議訪問網(wǎng)絡是遠遠不夠的。 當你需要編寫一個客戶/服務模式的網(wǎng)絡應用系統(tǒng)時就很難使用這些高層協(xié)議來實現(xiàn)這種網(wǎng)絡應用。在網(wǎng)絡程序設計中常用的套接字(Socket)通信 Socket是簡化編寫基于TCP協(xié)議的網(wǎng)絡應用程序,對TCP進行了封裝從而形成一個簡便的開發(fā)包 。第11章 網(wǎng)絡編程ppt課件(全)1. Socket和連接Socket是由IP地址和端

18、口號唯一確定的 。在Client/Server模式下,通常按照它們在網(wǎng)絡中所起的作用不同,可以分為兩類:客戶端和服務器端。 服務器端:服務器端的Socket始終在監(jiān)聽指定的端口是否有連接請求,如果發(fā)現(xiàn)客戶端Socket向其發(fā)出連接請求,且服務器接受連接請求,這樣,兩個Socket對象之間就創(chuàng)建了連接,如圖11-5所示。 圖11-5 Client/Server模式示意圖第11章 網(wǎng)絡編程ppt課件(全)(2) 客戶端:客戶端需要創(chuàng)建和服務器端的連接,就必須事先知道服務器的主機名和提供服務的端口號。有了這些信息以后,當客戶端發(fā)出的建立連接的請求被服務器端接受時,客戶機上就會創(chuàng)建一個Socket對象

19、。利用這個Socket對象,客戶端就可以實現(xiàn)與服務器端的通信。第11章 網(wǎng)絡編程ppt課件(全)總結:這種工作過程主要包含下面四個基本步驟: 創(chuàng)建Socket對象。 打開連接到Socket對象的輸入/輸出流。 按照一定的協(xié)議對Socket對象進行讀/寫操作。 關閉Socket對象(即釋放Socket對象所綁定的連接)。第11章 網(wǎng)絡編程ppt課件(全)2. Socket類Java在包中提供了兩個類Socket和ServerSocket,分別用來表示雙向連接的客戶端和服務器端。 例如,要求請求與一臺IP地址為、端口號為2000的遠程機器之間建立連接,可以用如下語句創(chuàng)建:trySocket soc

20、ket=new Socket(6,2000);catch(IOException e)e.printStackTrace(); 第11章 網(wǎng)絡編程ppt課件(全)3. ServerSocket類 服務器端需要由ServerSocket類來實現(xiàn)服務器端的Socket。ServerSocket對象監(jiān)聽網(wǎng)絡中來自客戶端的服務請求,它根據(jù)請求來創(chuàng)建連接,并響應客戶請求的服務。例如,要創(chuàng)建一個監(jiān)聽8080端口的Socket服務器端,可以使用下面的語句來實現(xiàn)。 ServerSocket server = new ServerSocket(8080);第11章 網(wǎng)絡編程ppt課件(全)要構建客戶/服務模式中

21、的服務器端通常需要5個步驟:(1) 創(chuàng)建一個ServerSocket對象,以實現(xiàn)對指定端口的監(jiān)聽。可用下面的程序語句來創(chuàng)建:ServerSocket server = new ServerSocket(port);(2) 服務器無限期地監(jiān)聽客戶連接請求。為了監(jiān)聽客戶連接,程序調用ServerSocket方法accept,如下面的程序段:Socket connection = server.accept();當與一個客戶建立連接,將返回一個Socket對象。該套接字允許服務器與客戶交互。(3) 通過獲取的Socket對象來取得OutputStream和InputStream對象,使服務器能夠通過

22、發(fā)送和接收字節(jié)與客戶進行通信。(4) 通信階段。在這個階段中,客戶和服務器通過OutputStream和InputStream對象進行通信。(5) 當傳輸完成時,服務器通過調用流和套接字的close()方法關閉連接。第11章 網(wǎng)絡編程ppt課件(全)一個典型的創(chuàng)建Server端ServerSocket的過程:ServerSocket server = null;try server = new ServerSocket(2000); / 創(chuàng)建一個ServerSocket在端口2000監(jiān)聽客戶請求 catch (IOException e) System.out.println(can not

23、listen to : + e);Socket socket = null;try socket = server.accept(); / accept()是一個阻塞的方法,一旦有客戶請求,它就會返回一個Socket對象用于同客戶進行交互 catch (IOException e) System.out.println(Error: + e);第11章 網(wǎng)絡編程ppt課件(全)任務9:什么是數(shù)據(jù)報 【任務內容】了解數(shù)據(jù)報【能力目標】了解數(shù)據(jù)報的概念和相關應用了解UDP的概念和工作過程11.4 基于UDP協(xié)議的網(wǎng)絡編程第11章 網(wǎng)絡編程ppt課件(全)數(shù)據(jù)報(Datagram)是通過網(wǎng)絡傳遞的一個獨立的、自我封裝的數(shù)據(jù)包,它可以從網(wǎng)絡中的一個點傳遞到另一個點。數(shù)據(jù)報通信是以UDP協(xié)議為基礎的。UDP的數(shù)據(jù)傳輸機制與TCP不同。用戶數(shù)據(jù)報協(xié)議(User Datagram Protocol,UDP)是一種不可靠的、無連接和面向消息的協(xié)議。 第11章 網(wǎng)絡編程ppt課件(全)通過UDP的UDP端口來實現(xiàn)UDP協(xié)議的網(wǎng)絡通信。其工作過程如下:(1) 創(chuàng)建一個適當?shù)囊l(fā)送且注明收發(fā)人地址的數(shù)據(jù)報。(2) 為一個特定的應用程序建立一個傳輸端口來傳送和接收數(shù)據(jù)報。(3) 將數(shù)據(jù)報插入一個傳輸端口中進行傳輸。(4) 等待接收來自于傳輸端口的一個數(shù)據(jù)報。(

溫馨提示

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

評論

0/150

提交評論