freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于局域網(wǎng)的即時(shí)通訊聊天室系統(tǒng)設(shè)計(jì)_畢業(yè)設(shè)計(jì)論文-全文預(yù)覽

  

【正文】 yncselect() MFC 的底部函數(shù)在 AttachHandle()中完成,流程圖 所 示: 20 獲 取 線 程 模 塊變 量是 有 效 套接 字 嗎是有 效 套 接 字為 空 嗎空創(chuàng) 建 窗 口窗 口 句 柄 賦 值 給 線 程 模 的m _ h S o c k e t W i n d o w s 變 量將 套 接 字 和 對(duì) 應(yīng) 的 實(shí) 例 指 針作 為 鍵 值 對(duì) 加 入 套 接 字 集 合退 出不 是將 套 接 字 和 對(duì) 應(yīng) 實(shí) 例 指 針 為鍵 值 對(duì) 加 入 無(wú) 效 套 接 字 集 合不 空 圖 42 啟動(dòng)服務(wù)器流程 服務(wù)器登陸 如 界面 如圖 43 所示 : 圖 服務(wù)器登陸如界面 初始化: ? 列表試圖控件初始化 ? 用戶列表初始化 ? 讀取離線消息;離線消息包括:發(fā)送消息的用戶,接收消息的用戶,接收和發(fā)送消息的時(shí)間 21 接受客戶端請(qǐng)求: CListenSocket::OnAccept()?CServerDlg::ProcessPendingAccept().接收數(shù) 據(jù):在FD_READ 網(wǎng)絡(luò)事件發(fā)生時(shí), CClienSocket::OnReceive()被調(diào)用 .在該函數(shù)中與 CSocket, CArchive, CSocketFile 協(xié)同工作完成文件的工作 ,同時(shí)調(diào)用 CSocket 類的 Receive()函數(shù): C A s y n c S o c k e t : : R e c e i v e ( )S O C K E T _ E R R O R是W S A E W O U L D BL O C K ?是P u m p M e s s a g e ( F D _ R E A D )返 回 為 T R U E ?否退 出不 是是 圖 接受過(guò)程流程圖 處理數(shù)據(jù): ? 保存離線消息 ? 保存用戶信息 ? 更新用戶列表 更新用戶列表的過(guò)程如 圖 : 22 讀 取 一 個(gè) 節(jié) 點(diǎn)是 否 為 空不 空名 字 相 同相 同密 碼 相 同不 在 線更 新 用 戶 狀 態(tài)T R U E退 出不 同將 該 用 戶 從 用 戶鏈 表 中 刪 除不 同發(fā) 送 密 碼錯(cuò) 誤 消 息F A L S E該 用 戶 不 在 服務(wù) 器 用 戶 鏈 表中注 冊(cè) 用 戶 信息發(fā) 送 用 戶 登陸 消 息將 該 用 戶 從在 線 用 戶 鏈表 中 刪 除空不 在F A L S ET R U E 圖 更新用 戶列表的過(guò)程 ? 發(fā)送用戶鏈表 ? 轉(zhuǎn)發(fā)離線消息 ? 更新服務(wù)器界面 刪除用戶: ? 顯示快捷欄 ? 刪除用戶 23 圖 刪除用戶 圖 禁止刪除用戶 24 用戶離線: ? 更新服務(wù)器用戶列表中該用戶信息 ? 將該用戶從在線用戶列表中刪除 ? 通知在線用戶更新該用戶的狀態(tài) ? 更新服務(wù)器界面 ? 刪除為該用戶分配的內(nèi)存空間 退出: ? 調(diào)用 OnDestroy()函數(shù) ? 保存用戶信息 ? 保存離線消息 ? 清理資源 25 客戶端設(shè)計(jì)實(shí)現(xiàn) 客戶端 靜態(tài)類 圖 C L i s t e n S o c k e tC C l i e n t D l gC C h a t S o c k e tC C h a t D l gC C h a t P a c k e t 聯(lián) 合 P A C K E T T Y P EC U s e r I n f o 聯(lián) 合 U S E R S T A T U EC C l i e n t R e l o g i n D l g C C l i e n t L o g i n D l gC C l i e n t A p p 結(jié) 束 1* 結(jié) 束 2* 結(jié) 束 3* 結(jié) 束 4* 結(jié) 束 5* 結(jié) 束 6* 結(jié) 束 71 結(jié) 束 8* 結(jié) 束 91 結(jié) 束 1 0* 結(jié) 束 1 11 結(jié) 束 1 2* 結(jié) 束 1 31 結(jié) 束 1 4* 結(jié) 束 1 51 結(jié) 束 1 6* 圖 靜態(tài)類圖 客戶端 主要類介紹 ? CClientDlg 類:創(chuàng)建客戶端主窗口,創(chuàng)建聊天窗口,接收離線消息,發(fā)送離線消息和保存聊天記錄等。 表 成員函數(shù) 函 數(shù) 名 稱 返 回 值 功 能 CClientSocket(CServerDlg *pServDlg 無(wú) 構(gòu)造函數(shù) ~CClientSocket() 無(wú) 析構(gòu)函數(shù) Init() Void 初始化 SendUserList(CChatPacket *pPacket) Void 發(fā)送用戶列表 SendUserMsg(CChatPacket *pPacket) Void 發(fā)送消息 SaveUserInfo(SOCKADDR_IN clientAddr) Void 保存用戶地址 SaveUserInfo(constCUserInfo amp。obList) void 保存離線消息 ? CListenSocket 類 :派生于 MFC 的 CSocket 類,用于接受客戶端的連接請(qǐng)求,在該類中重寫(xiě)了 CAsyncSocket 類 OnAccept()虛函數(shù)。userInfo, CClientSocket *pClientSocket) BOOL 更新用戶鏈表 TransmitMsg(constCChatPacketamp。obList) Void 保存用戶信息 LoadUserList(CObList amp。在該類中聲明 PACKETTYPE 枚舉類型。userInfo) 無(wú) 復(fù)制構(gòu)造數(shù) ~CUserInfo () 無(wú) 析構(gòu)函數(shù) Init() Void 初始成員變量 Serialize(CArchiveamp。在該類中聲明 USERSTATUE 枚舉類型,描述用戶狀態(tài)。 離線狀態(tài): 當(dāng)用戶離線時(shí),不能發(fā)送和接受消息。 圖 聊天程序的工作流程 功能設(shè)計(jì) 局域網(wǎng)聊天系 統(tǒng)以局域網(wǎng)內(nèi)的用戶為應(yīng)用對(duì)象,經(jīng)過(guò)各方面需求分析,該系統(tǒng)主加載套接字庫(kù) 初始化套接字 綁定本地機(jī)到套接字 向指定 IP 地址發(fā)送數(shù)據(jù) 關(guān)閉套接字庫(kù)結(jié)束聊天 創(chuàng)建線程用于接受數(shù)據(jù) 13 要 由服務(wù)器端和客戶端兩部分構(gòu)成,各功能模塊如圖 36 所示。 圖 架構(gòu)層次 本系統(tǒng)最底層是 Socket 通信層,將負(fù)責(zé)客戶端和服務(wù)器之間快速的數(shù)據(jù)交換,CAsyncSocket CSocket 聊天、游戲等應(yīng)用系統(tǒng) Window Sockets API Client Server Client Client Client 更新成員列表 成員列表 請(qǐng)求 應(yīng)答 發(fā)送消息 12 它通過(guò)接口層和最上面應(yīng)用層保持實(shí)時(shí)數(shù)據(jù)聯(lián)系。 ( 8) 為用戶保存離線消息。 ( 4) 為離線用戶保存離線消息。 ( 6) 保存聊天記錄。當(dāng)其他成員上線或下線時(shí),客戶端及時(shí)更新成員狀態(tài)。接下來(lái), 在客戶端,該系統(tǒng) 的用戶能夠通過(guò)登陸界面進(jìn)入,然后直接 與系統(tǒng)交互,進(jìn)行文字傳送。 而在基于 Socket 的聊天系統(tǒng)中,客戶端發(fā)出聊天信息的同時(shí),客戶端也在接受服務(wù)器發(fā)送過(guò)來(lái)的其他人的聊天信息,因此,請(qǐng)求和響應(yīng)不 存在那種前后對(duì)應(yīng)關(guān)系,是兩種分別獨(dú)立進(jìn)行的進(jìn)程。這種“推”技術(shù)是目前基于 Socket 聊天系統(tǒng)的主要實(shí)現(xiàn)技術(shù)。聊天系統(tǒng)有多種實(shí)現(xiàn)方式, 類似 ICQ屬于一種點(diǎn)對(duì)點(diǎn)的聊天系統(tǒng);還有一種是基于 Socket 的集中式聊天系統(tǒng),這種聊天系統(tǒng)需要登陸 統(tǒng)一 的聊天服務(wù)器 。缺點(diǎn)主要有以下幾個(gè): 只適用于局域網(wǎng)。 C/S 結(jié)構(gòu)軟件分為客戶機(jī)和服務(wù)器兩層,客戶機(jī)不是毫無(wú)運(yùn)算能力的輸入、輸出設(shè)備,而是具有了一定的數(shù)據(jù)處理和數(shù)據(jù)存儲(chǔ)能力,通過(guò)把應(yīng)用軟件的計(jì)算和數(shù)據(jù)合理地分配在客戶機(jī)和服務(wù)器兩端,可以有效地降低網(wǎng)絡(luò)通信量和服務(wù)器運(yùn)算量。這些端口號(hào)是 “ 廣為人知 ” 的,因?yàn)樵诮⑴c特定的主機(jī)或服務(wù)的連接時(shí),需要這些地址和目的地址進(jìn)行通訊 ,圖如 所示。 目的端口 目的系統(tǒng)上的連接的端口。因此, UDP 不被應(yīng)用于那些使用虛電路的面向連接的服務(wù), UDP 主要用于那些面向查詢 應(yīng)答的服務(wù) . TCP 和 UDP 服務(wù)通常有一個(gè)客戶 /服務(wù)器的關(guān)系 。 如果 IP 數(shù)據(jù)包中有已經(jīng)封好的 TCP 數(shù)據(jù)包,那么 IP 將把它們向 ‘ 上 ’ 傳送到TCP 層。 6 圖 模型 TCP/IP 協(xié)議 、 TCP 協(xié)議 網(wǎng)際協(xié)議 IP 是 TCP/IP 的心臟,也是網(wǎng)絡(luò)層中最重要的協(xié)議。在 select()或非阻塞 I/O 例程(例如 send()和 recv())已經(jīng)被調(diào)用或?qū)⒁徽{(diào)用的情況下都可 以使用 WSAAsyncSelect()調(diào)用。應(yīng)用程序調(diào)用Windows Sockets 的 API 實(shí)現(xiàn)相互之間的通訊。 M F C MFC,微軟基礎(chǔ)類 (Microsoft Foundation Classes),實(shí)際上是微軟提供的 ,用于在C++環(huán)境下編寫(xiě)應(yīng)用程序的一個(gè)框架和引擎 ,VC++是 WinDOS 下開(kāi)發(fā)人員使用的專業(yè)C++ SDK(SDK,Standard SoftWare Develop Kit,專業(yè)軟件開(kāi)發(fā)平臺(tái) ),MFC 就是掛在它之上的一個(gè)輔助軟件開(kāi)發(fā)包 ,MFC作為與 VC++血肉相連的部分 (注意 C++和 VC++的區(qū)別 :C++是一種程序設(shè)計(jì)語(yǔ)言 ,是一種大家都承認(rèn)的 軟件編制的通用規(guī)范 ,而 VC++只是一個(gè)編譯器 ,或者說(shuō)是一種編譯器 +源程序編輯器的 IDE,WS,PlatForm,這跟 Pascal和 Delphi的關(guān)系一個(gè)道理 ,Pascal是 Delphi的語(yǔ)言基礎(chǔ) ,Delphi使用 Pascal規(guī)范來(lái)進(jìn)行 Win 下應(yīng)用程序的開(kāi)發(fā)和編譯 ,卻不同于 Basic 語(yǔ)言和 VB 的 關(guān)系 ,Basic 語(yǔ)言在VB 開(kāi)發(fā)出來(lái)被應(yīng)用的年代已經(jīng)成了 Basic 語(yǔ)言的新規(guī)范 ,VB 新加的 Basic 語(yǔ)言要素 ,如面向?qū)ο蟪绦蛟O(shè)計(jì)的要素 ,是一種性質(zhì)上的飛躍 ,使 VB既是一個(gè) IDE,又成長(zhǎng)成一個(gè)新的程序設(shè)計(jì)語(yǔ)言 ),MFC同 BC++集成的 VCL一樣是一個(gè)非外掛式的軟件包 ,類庫(kù) ,只不過(guò) MFC 類是微 軟為 VC++專配的 .. WINDOWS SOCKETS 網(wǎng)絡(luò)編程接口 選定 WINDOWS 平臺(tái)開(kāi)發(fā)網(wǎng)絡(luò)通信程序,可以選擇 WINDOWS 的 SOCKETS 編程接口,Windows Sockets 是一套開(kāi)放的、支持 多種協(xié)議的 Windows 下的網(wǎng)絡(luò)編程接口。 Visual C++是一個(gè)典型的面向?qū)ο蟪绦虻脑O(shè)計(jì)語(yǔ)言,它也是目前為止功能最強(qiáng)、最受歡迎、應(yīng)用最廣泛、高效的 Windows 應(yīng)用程序開(kāi)發(fā)工具,它是在 C 語(yǔ)言基礎(chǔ)之上發(fā)展起來(lái)的,是 C 語(yǔ)言的超集。 操作系統(tǒng): Windows 20xx /Windows XP / Windows 20xx 內(nèi)存: 256MB 或更高 最后 ,對(duì)本設(shè)計(jì)進(jìn)行歸納總結(jié),全面 闡述本 次設(shè)計(jì)中的體會(huì) 。將對(duì)系統(tǒng) 進(jìn)行需求分析,對(duì)組成系統(tǒng)的功能模塊進(jìn)行劃分,對(duì)每個(gè)模塊將要實(shí)現(xiàn)的功能進(jìn)行闡述和說(shuō)明。為實(shí)現(xiàn)和方便客戶端間通信,在客戶端進(jìn)行了人性化的界面設(shè)計(jì) ,用戶可以注冊(cè)號(hào)碼,登陸界面,具有發(fā)送離線消息功能。這些軟件,在使用方面各有特色,在實(shí)現(xiàn)方面也各有所長(zhǎng),但基于 這些產(chǎn)品正在商業(yè)運(yùn)營(yíng)階段,其實(shí)現(xiàn)方式屬于商業(yè)機(jī)密,具體細(xì)節(jié)不 一定得知,但是它在大的方面無(wú)非就是各種利用各種平臺(tái)上的網(wǎng)絡(luò)通信接口,建構(gòu)基于下層 TCP/IP,或者 UDP 協(xié)議的軟 件產(chǎn)品。 基于 Socket 的局域網(wǎng)通信軟件應(yīng)用范圍廣闊,不但可以處理傳統(tǒng)的通信需求,而且也能擴(kuò)展以適應(yīng)新型的網(wǎng)絡(luò)應(yīng)用,如網(wǎng)絡(luò)教育,數(shù)據(jù)影音傳輸?shù)?,擁有廣泛的應(yīng)用前景?;?Socket的局域網(wǎng)通信軟件可以為企業(yè)原有的局域網(wǎng)提供一種良好,安全,快速的通信機(jī)制。在內(nèi)部局域網(wǎng)的幫助下,企業(yè)得以簡(jiǎn)化信息流程,提高信息交換的速度,從而提高工作效率。該軟件采用 異步套接字的非阻塞模式,并實(shí)現(xiàn)對(duì)象的序列 化 和 MFC 文件對(duì)象實(shí)現(xiàn)數(shù)據(jù)的保存。I 本科畢業(yè)設(shè)
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1