下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、,簡易聊天室,授課教師:,網(wǎng)絡(luò)編程,導(dǎo)入,在電子教室軟件系統(tǒng)中,教師經(jīng)常需要根據(jù)課程內(nèi)容將學(xué)生分組,每個小組完成一個任務(wù)。每個小組的小組成員之間需要進(jìn)行討論,所以需要有一個簡單的聊天室功能,使多個成員之間可以很方便的進(jìn)行溝通和交流。本章我們就通過一個簡單的聊天室程序,來介紹一下使用UDP協(xié)議進(jìn)行通信的相關(guān)技術(shù)。,本章要點,聊天室功能分析設(shè)計 WinSock實現(xiàn)UDP通信 CSocket類實現(xiàn)UDP通信 聊天室開發(fā),功能需求分析,聊天室服務(wù)器功能: 啟動一個新的聊天室。 能記錄所有登錄的聊天者信息。 能接收聊天者程序發(fā)來的聊天信息,并顯示到界面上。 能把一個聊天者發(fā)來的信息發(fā)送給所有其他聊天者。
2、 聊天者程序功能: 能登錄到聊天室服務(wù)器。 能發(fā)送聊天信息給聊天室服務(wù)器。 能接收服務(wù)器發(fā)回的其他人的聊天信息,并顯示在自己的界面上。,界面設(shè)計,關(guān)鍵技術(shù)分析,聊天室的核心功能就是多個點之間的數(shù)據(jù)傳遞 本章講解另一種面向非連接的基于UDP協(xié)議的socket通信技術(shù)來實現(xiàn)聊天室實例,面向非連接的通信,“面向非連接”就是在正式通信前不必與對方先建立連接,不管對方狀態(tài)就直接發(fā)送。 與現(xiàn)在風(fēng)行的手機(jī)短信非常相似:你在發(fā)短信的時候,只需要輸入對方手機(jī)號就可以了。 UDP(User Data Protocol,用戶數(shù)據(jù)報協(xié)議)是與TCP相對應(yīng)的協(xié)議。它是面向非連接的協(xié)議,它不與對方建立連接,而是直接就把數(shù)
3、據(jù)包發(fā)送過去。,UDP通信流程圖,核心程序?qū)崿F(xiàn),發(fā)送和接收的的數(shù)據(jù)包的定義 struct MEG int code; /包的編號 char data500; /數(shù)據(jù)內(nèi)容 Meg; code:數(shù)據(jù)包的編號 data:要傳輸?shù)臄?shù)據(jù),核心程序發(fā)送UDP數(shù)據(jù)包,void CSendUDPDlg:OnSend() UpdateData(true); struct MEG /發(fā)送數(shù)據(jù)對象的定義 int code;/包的編碼 char data500; Meg; CSocket m_SendSocket;/構(gòu)造一個套接字對象 Meg.code=1; strcpy(Meg.data,m_message); /
4、發(fā)送數(shù)據(jù)的初始化 int port=8888;/對方的監(jiān)聽端口 m_SendSocket.Create(6666,SOCK_DGRAM);/創(chuàng)建一個套接字句柄(UDP) m_SendSocket.SendTo( ,核心程序接收UDP數(shù)據(jù)包,void CReceiveUDPDlg:OnServer() struct MEG int code;/包的編碼 char data500; *pMeg; CSocket m_ReceiveSocket;/構(gòu)造一個套接字對象 char *buff512; m_ReceiveSocket.Create(8888,SOCK_DGRAM); m_ReceiveSo
5、cket.Receive(buff,512); pMeg=(struct MEG*)buff;/非常關(guān)鍵 m_show.AddString(pMeg-data); m_ReceiveSocket.Close(); ,程序擴(kuò)展實現(xiàn)點對點聊天,接收對方聊天信息功能流程,程序擴(kuò)展實現(xiàn)聊天室,聊天室程序設(shè)計的思路是由一個服務(wù)器端程序和一個聊天者端程序組成。 服務(wù)器端程序主要負(fù)責(zé)記錄所有進(jìn)入本聊天室的聊天者的IP地址,并且接收所有聊天者的信息,將每個聊天者發(fā)來的信息轉(zhuǎn)發(fā)給所有聊天者。 聊天者程序可以發(fā)送聊天信息給服務(wù)器,同時可以接收服務(wù)器發(fā)送回來的信息,并顯示到聊天記錄界面上。,聊天室服務(wù)器端程序主要功
6、能:,(1)記錄所有進(jìn)入本聊天室的聊天者IP(以便轉(zhuǎn)發(fā)其他聊天者的聊天信息)。 (2)啟動一個子線程,用于接收聊天者數(shù)據(jù)包。 (3)接到數(shù)據(jù)包,取出IP地址,存入聊天者列表(重復(fù)的不要)。 (4)將接收到的聊天信息轉(zhuǎn)發(fā)給聊天者列表中的每個聊天者。 (5)將接收到的聊天信息添加到界面的列表控件中。,聊天室服務(wù)器功能流程,聊天者程序功能:,(1)進(jìn)入聊天室,發(fā)送數(shù)據(jù)包給聊天室服務(wù)器。 (2)接收服務(wù)器發(fā)送回來的信息,并顯示到聊天記錄界面上。 實現(xiàn)代碼詳見教材,本章技能訓(xùn)練實例,題目一:將第一章的掃描可控計算機(jī)程序改為用UDP協(xié)議的通信技術(shù)實現(xiàn)。 題目二:將前一章的網(wǎng)絡(luò)考試報名系統(tǒng)改為基于UDP協(xié)議的通信技術(shù)實現(xiàn)。 題目三:模仿
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026湖北武漢市某國企寫字樓會務(wù)崗位招聘1人考試備考題庫及答案解析
- 2026江蘇南京大學(xué)圖書館倉儲人員招聘考試參考題庫及答案解析
- 2026中國礦業(yè)大學(xué)(北京)招聘9人考試備考題庫及答案解析
- 2026中國農(nóng)業(yè)科學(xué)院農(nóng)產(chǎn)品加工研究所食物營養(yǎng)與功能性食品創(chuàng)新團(tuán)隊招聘合同制科研助理考試備考題庫及答案解析
- 2026江西九江市彭澤縣紅光港管理服務(wù)中心招聘海關(guān)協(xié)管員3人考試備考題庫及答案解析
- 2026廣東深圳九州光電子技術(shù)有限公司招聘運維工程師等崗位3人考試參考試題及答案解析
- 2025浙江杭州余杭水務(wù)有限公司招聘36人考試參考試題及答案解析
- 2026達(dá)州農(nóng)商銀行通川支行寒假實習(xí)生招聘考試參考試題及答案解析
- 2026廣西桂林市七星區(qū)編外聘用人員招聘2人考試參考試題及答案解析
- 2026日照銀行見習(xí)人員招聘10人考試備考題庫及答案解析
- 2026年公平競爭審查知識競賽考試題庫及答案(一)
- 置業(yè)顧問2025年度工作總結(jié)及2026年工作計劃
- 2025新疆智慧口岸建設(shè)白皮書
- 2025嵐圖汽車社會招聘(公共基礎(chǔ)知識)測試題附答案
- 2025-2026小學(xué)嶺南版(2024)美術(shù)二年級上冊教學(xué)設(shè)計(附目錄)
- 2025福建德化閩投抽水蓄能有限公司招聘15人模擬試卷附答案
- 微生物檢驗標(biāo)準(zhǔn)操作規(guī)范
- 藝術(shù)學(xué)概論共12章
- 2024年版中國頭頸部動脈夾層診治指南課件
- 2025年支部書記講黨課
- 2025年國考科技部英文面試題庫及答案
評論
0/150
提交評論