Java語言程序設(shè)計(jì)(第2版)教學(xué)設(shè)計(jì)第12章 教學(xué)設(shè)計(jì)_第1頁
Java語言程序設(shè)計(jì)(第2版)教學(xué)設(shè)計(jì)第12章 教學(xué)設(shè)計(jì)_第2頁
Java語言程序設(shè)計(jì)(第2版)教學(xué)設(shè)計(jì)第12章 教學(xué)設(shè)計(jì)_第3頁
Java語言程序設(shè)計(jì)(第2版)教學(xué)設(shè)計(jì)第12章 教學(xué)設(shè)計(jì)_第4頁
Java語言程序設(shè)計(jì)(第2版)教學(xué)設(shè)計(jì)第12章 教學(xué)設(shè)計(jì)_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

學(xué)IT有疑問,就找千問千知千里尋他眾百度,鋒自苦寒磨礪出千鋒教育Java語言程序設(shè)計(jì)(第2版)教學(xué)設(shè)計(jì)課程名稱:Java語言程序設(shè)計(jì)(第2版)_______授課年級:___________________________授課學(xué)期:___________________________教師姓名:___________________________2020年03月01日課程名稱第12章網(wǎng)絡(luò)編程計(jì)劃學(xué)時4學(xué)時內(nèi)容分析本章主要介紹網(wǎng)絡(luò)通信協(xié)議、UDP通信、TCP通信、JavaApplet教學(xué)目標(biāo)與教學(xué)要求要求學(xué)生了解網(wǎng)絡(luò)通信協(xié)議、熟練掌握UDP通信、熟練掌握TCP通信、熟練掌握網(wǎng)絡(luò)程序的開發(fā)教學(xué)重點(diǎn)網(wǎng)絡(luò)通信協(xié)議、UDP通信、TCP通信、JavaApplet教學(xué)難點(diǎn)UDP通信、TCP通信、JavaApplet教學(xué)方式課堂講解及ppt演示教學(xué)過程第一課時(網(wǎng)絡(luò)通信協(xié)議、UDP通信)內(nèi)容回顧回顧上節(jié)內(nèi)容,引出本課時主題。上節(jié)已經(jīng)介紹了多線程,在如今時代,計(jì)算機(jī)網(wǎng)絡(luò)縮短了人們之間的距離,把“地球村”變成現(xiàn)實(shí),網(wǎng)絡(luò)已成為計(jì)算機(jī)領(lǐng)域最廣泛的應(yīng)用。現(xiàn)代的人們已經(jīng)越來越離不開網(wǎng)絡(luò),網(wǎng)絡(luò)編程是Java程序設(shè)計(jì)重要的組成部分,使用Java可以輕松地開發(fā)出各種類型的網(wǎng)絡(luò)程序。而要編寫網(wǎng)絡(luò)應(yīng)用程序,首先必須明確網(wǎng)絡(luò)應(yīng)用程序所要使用的網(wǎng)絡(luò)協(xié)議,TCP/IP是網(wǎng)絡(luò)應(yīng)用程序的首選。本章將帶領(lǐng)讀者學(xué)習(xí)網(wǎng)絡(luò)編程的相關(guān)知識,并通過這些知識點(diǎn)學(xué)習(xí)網(wǎng)絡(luò)程序的開發(fā)。明確學(xué)習(xí)目標(biāo)能夠掌握IP地址和端口號能夠掌握InetAddress能夠掌握UDP與TCP能夠掌握DatagramPacket能夠掌握DatagramSocket能夠掌握UDP案例——聊天程序知識講解IP地址和端口號網(wǎng)絡(luò)中的計(jì)算機(jī)互相通信,需要為每臺計(jì)算機(jī)指定一個標(biāo)識號,通過這個標(biāo)識號來指定接收或發(fā)送數(shù)據(jù)的計(jì)算機(jī),在TCP/IP中,這個標(biāo)識號就是IP地址,它能唯一地標(biāo)識Internet上的計(jì)算機(jī)。IP地址是數(shù)字型的,它由一個32位整數(shù)表示,但這樣不方便記憶,通常把它分成4個8位的二進(jìn)制數(shù),每8位之間用圓點(diǎn)隔開,每個8位整數(shù)可以轉(zhuǎn)換成一個0~255的十進(jìn)制整數(shù),例如06。通過IP地址可以唯一標(biāo)識網(wǎng)絡(luò)上的一個通信實(shí)體,但一個通信實(shí)體可以有多個通信程序同時提供網(wǎng)絡(luò)服務(wù),比如計(jì)算機(jī)同時運(yùn)行QQ和MSN,這就需要使用端口號來區(qū)分不同的應(yīng)用程序,不同應(yīng)用程序處理不同端口上的數(shù)據(jù)。端口號是一個16位的整數(shù),取值范圍0~65535,其中,0~1023之間的端口號用于一些知名的網(wǎng)絡(luò)服務(wù)和應(yīng)用,用戶的普通應(yīng)用程序使用1024以上的端口號,避免端口號沖突。如果把程序當(dāng)作人,把計(jì)算機(jī)網(wǎng)絡(luò)當(dāng)做類似郵遞員的角色,當(dāng)一個程序需要發(fā)送數(shù)據(jù)時,指定目的地的IP地址就像指定了目的地的街道,但這樣還是找不到目的地,還需要指定房間號,也就是端口號,接下來同一張圖來描述IP地址和端口號作用。InetAddress12.1.1節(jié)中講解了IP地址的相關(guān)知識,Java提供了InetAddress類來代表IP地址,它有兩個子類,分別為Inet4Address類和Inet6Address類,分別代表IPv4和IPv6的地址。InetAddress類沒有提供構(gòu)造方法,提供了5個靜態(tài)方法來獲取InetAddress實(shí)例,如表所示。表中列出了InetAddress類獲取實(shí)例對象的靜態(tài)方法,另外它還有一些常用方法,如表所示。UDP與TCP在前面提到傳輸層兩個重要的協(xié)議是UDP(UserDatagramProtoclo)和TCP(TransmissionControlProtoclo),分別被稱為用戶數(shù)據(jù)報協(xié)議和傳輸控制協(xié)議,接下來詳細(xì)解釋這兩個概念。UDP是無連接的通信協(xié)議,將數(shù)據(jù)封裝成數(shù)據(jù)包,直接發(fā)送出去,每個數(shù)據(jù)報的大小限制在64K以內(nèi),發(fā)送數(shù)據(jù)結(jié)束時無須釋放資源。因?yàn)閁DP不需要建立連接就能發(fā)送數(shù)據(jù),所以它是一種不可靠的網(wǎng)絡(luò)通信協(xié)議,優(yōu)點(diǎn)是效率高,缺點(diǎn)是容易丟失數(shù)據(jù)。一些視頻、音頻大多采用這種方式傳輸,即使丟失幾個數(shù)據(jù)包,也不會對觀看或收聽產(chǎn)生較大影響。UDP的傳輸過程如圖所示。UDP的傳輸過程如圖所示。TCP協(xié)議是面向連接的通信協(xié)議,使用TCP協(xié)議前,須先采用“三次握手”方式建立TCP連接,形成數(shù)據(jù)傳輸通道,在連接中可進(jìn)行大數(shù)據(jù)量的傳輸,傳輸完畢要釋放已建立的連接,TCP是一種可靠的網(wǎng)絡(luò)通信協(xié)議,它的優(yōu)點(diǎn)是數(shù)據(jù)傳輸安全和完整,缺點(diǎn)是效率低。一些對完整性和安全性要求高的數(shù)據(jù)采用TCP協(xié)議傳輸。TCP的“三次握手”如圖所示。DatagramPacket前面講解了UDP在發(fā)送數(shù)據(jù)時,先將數(shù)據(jù)封裝成數(shù)據(jù)包,在包中有一個DatagramPacket類,它就表示存放數(shù)據(jù)的數(shù)據(jù)包,DatagramPacket類的構(gòu)造方法如表所示。表中列出了DatagramPacket類的構(gòu)造方法,通過這些方法可以獲得DatagramPacket的實(shí)例,它還有一些常用方法,如表所示。DatagramSocket在包中還有一個DatagramSocket類,它是一個數(shù)據(jù)報套接字,包含了源IP地址和目的IP地址以及源端口號和目的端口號的組合,用于發(fā)送和接收UDP數(shù)據(jù)。DatagramSocket類的構(gòu)造方法如表所示。表中列出了DatagramSocket類的構(gòu)造方法,通過這些方法可以獲得DatagramSocket的實(shí)例,它還有一些常用方法,如表所示。UDP網(wǎng)絡(luò)程序前面講解了包中兩個重要的類,DatagramPacket類和DatagramSocket類,接下來通過一個案例來學(xué)習(xí)它們的使用,這里需要創(chuàng)建一個發(fā)送端程序,一個接收端程序,在運(yùn)行程序時,必須接收端程序先運(yùn)行才可以,首先編寫接收端程序,如例所示。編寫完接收端程序后,還需要發(fā)送端程序,如例所示。UDP案例——聊天程序前面講解了UDP的相關(guān)內(nèi)容,發(fā)送端發(fā)送數(shù)據(jù)到指定端口,接收端接收指定端口的數(shù)據(jù),按這個思想,可以實(shí)現(xiàn)一個接收端和發(fā)送端互相通信的小程序——聊天程序,在這里先結(jié)合多線程將基本原理講解一下。首先要明確一點(diǎn),將接收端和發(fā)送端同時運(yùn)行,實(shí)際上就是運(yùn)行兩個線程,應(yīng)用到了以前講的多線程,接下來用一個案例演示UDP結(jié)合多線程的應(yīng)用,示例代碼參考教材12.2.4節(jié)。第二課時(TCP通信、JavaApplet)內(nèi)容回顧回顧上節(jié)內(nèi)容,引出本課時主題。上節(jié)已經(jīng)介紹了IP地址和端口號、InetAddress、UDP與TCP、DatagramPacket、DatagramSocket、UDP網(wǎng)絡(luò)程序、UDP案例——聊天程序,下面將介紹ServerSocket、Socket、簡單的TCP網(wǎng)絡(luò)程序、多線程的TCP網(wǎng)絡(luò)程序、TCP案例——文件上傳和JavaApplet。明確學(xué)習(xí)目標(biāo)能夠掌握ServerSocket能夠掌握Socket能夠掌握簡單的TCP網(wǎng)絡(luò)程序能夠掌握多線程的TCP網(wǎng)絡(luò)程序能夠掌握TCP案例——文件上傳能夠掌握J(rèn)avaApplet知識講解ServerSocket在包中有一個ServerSocket類,它可以實(shí)現(xiàn)一個服務(wù)器端的程序,ServerSocket類的構(gòu)造方法如表所示。表中列出了ServerSocket類的構(gòu)造方法,通過這些方法可以獲得ServerSocket的實(shí)例,它還有一些常用方法,如表所示。Socket在包中還有一個Socket類,它是一個數(shù)據(jù)報套接字,包含了源IP地址和目的IP地址以及源端口號和目的端口號的組合,用于發(fā)送和接收UDP數(shù)據(jù)。Socket類的常用構(gòu)造方法如表所示。表中列出了Socket類的常用構(gòu)造方法,通過這些方法可以獲得Socket的實(shí)例,它還有一些常用方法,如表所示。簡單的TCP網(wǎng)絡(luò)程序前面講解了包中兩個重要的類,ServerSocket類和Socket類,接下來通過一個案例來學(xué)習(xí)它們的使用,這里需要創(chuàng)建一個服務(wù)端程序,一個客戶端程序,在運(yùn)行程序時,必須先運(yùn)行服務(wù)端程序,首先編寫服務(wù)端程序,示例代碼參考教材12.3.3.節(jié)。程序的運(yùn)行結(jié)果如圖所示。多線程的TCP網(wǎng)絡(luò)程序12.3.3節(jié)中講解了簡單的服務(wù)端、客戶端通信,當(dāng)服務(wù)端接收到客戶端數(shù)據(jù)后打印到控制臺,并且向客戶端發(fā)送響應(yīng)數(shù)據(jù),程序運(yùn)行結(jié)束。在實(shí)際應(yīng)用中客戶端可能需要與服務(wù)端保持長時間通信,或者多個客戶端都要與服務(wù)端通信,這就需要應(yīng)用到前邊學(xué)過的多線程,接下來先創(chuàng)建一個專門用于處理多線程操作的類,示例代碼參考教材12.3.4節(jié)。例中,TestThread類實(shí)現(xiàn)了Runnable接口,構(gòu)造方法接收每一個客戶端的Socket,重寫run()方法,在方法中通過循環(huán)的方式接收客戶端信息,并向客戶端輸出響應(yīng)信息,最后釋放資源,接下來應(yīng)用多線程改造上一節(jié)中例12-5的服務(wù)端程序,示例代碼參考教材12.3.4節(jié)。TCP案例——文件上傳通過前面的學(xué)習(xí),基本掌握了客戶端和服務(wù)端通過TCP協(xié)議進(jìn)行通信的方式。接下來進(jìn)一步學(xué)習(xí)和練習(xí),實(shí)現(xiàn)一個文件上傳功能,以便加深和鞏固TCP的相關(guān)知識。首先準(zhǔn)備一個要上傳的文件,這里在當(dāng)前文件創(chuàng)建了一個file文件夾,存放了一張圖片“test.jpg”用于上傳,上傳后將文件保存到同一路徑,上傳后的文件名為“test-2.jpg”,接下來開始編寫服務(wù)端代碼,示例代碼參考教材12.3.5節(jié)。JavaApplet前面提到本章將再結(jié)合GUI講解一個完整的Java聊天應(yīng)用程序。實(shí)際上前面講解了聊天程序的基本原理,但是聊天程序是給用戶使用的,需要界面,這里來結(jié)合GUI講解一個用于聊天的JavaApplet。首先來分析一下,編寫聊天程序需要用UDP協(xié)議通信,通過監(jiān)聽指定的端口號,目標(biāo)IP地址和目標(biāo)端口號,實(shí)現(xiàn)消息的發(fā)送和接收功能,并將聊天內(nèi)容顯示出來,這需要編寫接收端和發(fā)送端的邏輯代碼,還需要編寫接收端和發(fā)送端的展示界面,本例中分別為窗口1和窗口2,接下來首先編寫接收端邏輯代碼和展示界面,示例代碼參考教材12.4節(jié)。第三課時上機(jī)練習(xí)(總結(jié)、練習(xí)題)總結(jié)本章內(nèi)容。通

溫馨提示

  • 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

提交評論