《Java程序設(shè)計教程(第2版)》(賈珺)941-7教案 第29課Java網(wǎng)絡(luò)編程(二)_第1頁
《Java程序設(shè)計教程(第2版)》(賈珺)941-7教案 第29課Java網(wǎng)絡(luò)編程(二)_第2頁
《Java程序設(shè)計教程(第2版)》(賈珺)941-7教案 第29課Java網(wǎng)絡(luò)編程(二)_第3頁
《Java程序設(shè)計教程(第2版)》(賈珺)941-7教案 第29課Java網(wǎng)絡(luò)編程(二)_第4頁
《Java程序設(shè)計教程(第2版)》(賈珺)941-7教案 第29課Java網(wǎng)絡(luò)編程(二)_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第課Java網(wǎng)絡(luò)編程(二)29第課Java網(wǎng)絡(luò)編程(二)29PAGE6Java網(wǎng)絡(luò)編程(二)第課29PAGE5Java網(wǎng)絡(luò)編程(二)第課29PAGE5

課題Java網(wǎng)絡(luò)編程(二)課時2課時(90min)教學(xué)目標(biāo)知識技能目標(biāo):了解DatagramSocket類的構(gòu)造方法(2)掌握DatagramPacket類的構(gòu)造方法(3)通過上機(jī)實操,將所學(xué)知識與實際應(yīng)用相結(jié)合思政育人目標(biāo):(1)引導(dǎo)學(xué)生養(yǎng)成獨(dú)立思考和深度思考的良好習(xí)慣(2)開闊學(xué)生視野,引導(dǎo)學(xué)生探究科技前沿知識,加強(qiáng)學(xué)生緊跟時代發(fā)展的意識教學(xué)重難點(diǎn)教學(xué)重點(diǎn):DatagramPacket類的構(gòu)造方法教學(xué)難點(diǎn):將所學(xué)知識與實際應(yīng)用相結(jié)合教學(xué)方法情景模擬法、問答法、討論法教學(xué)用具電腦、投影儀、多媒體課件、教材、文旌課堂APP教學(xué)設(shè)計第1節(jié)課:傳授新知(33min)

知識拓展(5min)第2節(jié)課:上機(jī)實操1(20min)

課堂演示(20min)

課堂小結(jié)(3min)

作業(yè)布置(2min)教學(xué)過程主要教學(xué)內(nèi)容及步驟設(shè)計意圖第一節(jié)課課前任務(wù)【教師】布置課前任務(wù),和學(xué)生負(fù)責(zé)人取得聯(lián)系,讓其提醒同學(xué)復(fù)習(xí)上節(jié)課所學(xué)知識【學(xué)生】復(fù)習(xí)上節(jié)課所學(xué)知識通過課前復(fù)習(xí),讓學(xué)生重溫上節(jié)課所學(xué)知識,使其能夠更好地接受新知識考勤

(2min)【教師】使用文旌課堂APP進(jìn)行簽到【學(xué)生】按照老師要求簽到培養(yǎng)學(xué)生的組織紀(jì)律性,掌握學(xué)生的出勤情況問題導(dǎo)入

(5min)【教師】提出以下問題:在網(wǎng)絡(luò)編程中,TCP可以理解為打電話,而UDP(UserDatagramProtocol)則可以理解為發(fā)短信、發(fā)快遞,發(fā)短信和發(fā)快遞有一個共同點(diǎn),發(fā)送的時候無需知道接收方存不存在,所以對于發(fā)送方來說,有可能會有“發(fā)送的消息”對方接收不到的損失,這相對于類似打電話的“TCP”方式來說,對于UDP這種“物美價廉”的通訊方式也是需要工具類的,請同學(xué)們說一下UDP編程需要的工具類有那些?【學(xué)生】思考、討論、舉手發(fā)言通過問題導(dǎo)入,引導(dǎo)學(xué)生思考,調(diào)動學(xué)生的主觀能動性傳授新知

(33min)【教師】通過大家的發(fā)言,引入新的知識點(diǎn),講解基于UDP的網(wǎng)絡(luò)編程12.3基于UDP的網(wǎng)絡(luò)編程1.DatagramSocket類用于創(chuàng)建數(shù)據(jù)報Socket以接收和發(fā)送數(shù)據(jù)報。2.DatagramPacket類則提供傳送數(shù)據(jù)報的載體。12.3.1DatagramSocket類DatagramSocket類的構(gòu)造方法DatagramSocket();DatagramSocket(intport);DatagramSocket(intport,InetAddresslocalAddr);port表示端口號,localAddr表示本地主機(jī)地址。12.3.2DatagramPacket類1.DatagramPacket類的構(gòu)造方法DatagramPacket(byte[]buf,intlength);buf表示存放發(fā)送或接收的數(shù)據(jù)報的字節(jié)數(shù)組,length表示數(shù)據(jù)報的長度,address和port表示數(shù)據(jù)報發(fā)送的目標(biāo)地址和端口號。2.在客戶端或服務(wù)器端接收數(shù)據(jù)之前,應(yīng)該采用DatagramPacket類的第一種構(gòu)造方法創(chuàng)建一個DatagramPacket對象,然后調(diào)用DatagramSocket類的receive()方法等待接收數(shù)據(jù)報。//創(chuàng)建DatagramSocket類對象socket,并指定端口號為2556DatagramSocketsocket=newDatagramSocket(2556);//定義字節(jié)數(shù)組buf,長度為256字節(jié)byte[]buf=newbyte[256];//創(chuàng)建DatagramPacket類對象packet,并指定buf存放packetDatagramPacketpacket=newDatagramPacket(buf,256);//調(diào)用socket的receive()方法接收packetsocket.receive(packet);3.在發(fā)送數(shù)據(jù)之前,需要使用DatagramPacket類的第二種構(gòu)造方法創(chuàng)建一個新的DatagramPacket對象,即要指明數(shù)據(jù)報發(fā)送的目標(biāo)地址和端口號。發(fā)送數(shù)據(jù)報是通過DatagramSocket類的send()方法實現(xiàn)的。//創(chuàng)建DatagramSocket類對象socketDatagramSocketsocket=newDatagramSocket();//定義字節(jié)數(shù)組buf,長度為256字節(jié)byte[]buf=newbyte[256];//獲取本地主機(jī)地址,并賦給addressInetAddressaddress=InetAddress.getByName("localhost");//創(chuàng)建DatagramPacket類對象acket,并指定buf存放acket//同時指定發(fā)送的目標(biāo)地址和端口號(2556)acket//調(diào)用socket的send()方法發(fā)送packetsocket.send(packet);【教師】演示例題12-3,并對重要語句進(jìn)行分析【學(xué)生】聆聽、理解、記錄【學(xué)生】聆聽、思考、理解、記憶通過教師在課堂上對UDP的網(wǎng)絡(luò)編程的類的講解,使學(xué)生熟練掌握其構(gòu)造方法知識拓展

(5min)【教師】講解線程同步的小技巧【學(xué)生】聆聽、記錄、思考學(xué)生可進(jìn)一步鞏固知識第二節(jié)課上機(jī)實操

(20min)【教師】組織學(xué)生在機(jī)房使用文本編輯編寫程序,運(yùn)用課堂所學(xué)知識和基礎(chǔ)在Java運(yùn)行環(huán)境中編寫程序,實現(xiàn)以下目的:模擬迷你聊天室,實現(xiàn)多人聊天。服務(wù)器和客戶端分別在兩個主機(jī)上運(yùn)行(服務(wù)器主機(jī)的IP地址為192.168.1.104),客戶端可創(chuàng)建多個用戶加入聊天室,加入前須設(shè)置昵稱,也可隨時退出聊天室?!緦W(xué)生】上機(jī)實操,模擬迷你聊天室【教師】巡視機(jī)房,及時解決學(xué)生遇到的問題通過上機(jī)實操,使學(xué)生熟練掌握服務(wù)器和客戶端的創(chuàng)建方法課堂演示

(20min)【教師】帶領(lǐng)學(xué)生分析上機(jī)操作中出現(xiàn)的問題,并作出分析【問題分析】(1)在服務(wù)器程序中,定義一個公共類ChatServer(服務(wù)器類)和服務(wù)器線程類ServerThread。①在ChatServer類的main()方法中創(chuàng)建HashMap類對象clientMap,鍵為用戶昵稱,值為對應(yīng)用戶的數(shù)據(jù)字節(jié)輸出流對象;然后創(chuàng)建服務(wù)器套接字sSocket(端口號為5007),并循環(huán)使用sSocket的accept()方法監(jiān)聽客戶端的請求,當(dāng)接收到客戶端請求后,將此用戶添加到clientMap中,并創(chuàng)建和啟動服務(wù)器線程。②ServerThread類繼承Thread類,在其中聲明成員變量name(昵稱)、dis(數(shù)據(jù)字節(jié)輸入流對象)和clientMap(HashMap類對象),并通過有參構(gòu)造方法初始化成員變量;然后重寫run()方法,實現(xiàn)從dis中讀取客戶端消息,并通過transmitMessage()方法發(fā)送給每一個用戶,如果接收到的信息為“bye”,將此用戶從clientMap中刪除?!窘處煛坷枚嗝襟w演示具體操作過程【運(yùn)行結(jié)果】【學(xué)生】上機(jī)實操,根據(jù)老師的演示上機(jī)實操總結(jié)自己的不足通過演示讓學(xué)生找出自己的不足,從而牢固的掌握知識點(diǎn)課堂小結(jié)

(3min)【教師】簡要總結(jié)本節(jié)課的要點(diǎn)本節(jié)課學(xué)習(xí)了基于UDP的網(wǎng)絡(luò)編程的類的構(gòu)造方法。并通過上機(jī)實操讓大家熟練掌握了怎樣創(chuàng)建服務(wù)器和客戶端。希望大家課下多加練習(xí),鞏固所學(xué)知識?!緦W(xué)生】總結(jié)回顧知識點(diǎn)總結(jié)知識點(diǎn),鞏固印象作業(yè)布置

(2min)【教師】布置課后作業(yè)編寫程序,客戶端發(fā)送一個文件名給服務(wù)器,服務(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

提交評論