Visual-C++網(wǎng)絡(luò)編程技術(shù)-04.ppt_第1頁
Visual-C++網(wǎng)絡(luò)編程技術(shù)-04.ppt_第2頁
Visual-C++網(wǎng)絡(luò)編程技術(shù)-04.ppt_第3頁
Visual-C++網(wǎng)絡(luò)編程技術(shù)-04.ppt_第4頁
Visual-C++網(wǎng)絡(luò)編程技術(shù)-04.ppt_第5頁
免費預(yù)覽已結(jié)束,剩余14頁可下載查看

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論