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

正文內(nèi)容

基于局域網(wǎng)的即時(shí)通訊聊天室系統(tǒng)設(shè)計(jì)_畢業(yè)設(shè)計(jì)論文(編輯修改稿)

2025-07-19 16:15 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 id復(fù)制用戶(hù)鏈表DeleteTempUserList(CObList amp。obList) Void刪除臨時(shí)鏈表UpdateUserList(constCUserInfoamp。userInfo,CClientSocket *pClientSocket) BOOL更新用戶(hù)鏈表TransmitMsg(constCChatPacketamp。packet,CClientSocket*pClientSocket) BOOL轉(zhuǎn)發(fā)離線(xiàn)消息UpdateServerListCtl(const CObList amp。obList) Void更新服務(wù)器界面OnInitDialog() BOOL初始化對(duì)話(huà)框OnRclickClientList(NMHDR* pNMHDR,LRESULT*pResult)Void選擇列表控件消息響應(yīng)函數(shù)OnServerListDeleteMenuitem() Void 刪除用戶(hù)消息響應(yīng)函數(shù) SaveUserList(const CObList amp。obList)void保存用戶(hù)信息SaveOfflineMsg(const CObList amp。obList)void保存離線(xiàn)消息l CListenSocket類(lèi) :派生于MFC的CSocket 類(lèi),用于接受客戶(hù)端的連接請(qǐng)求,在該類(lèi)中重寫(xiě)了CAsyncSocket類(lèi)OnAccept()虛函數(shù)。當(dāng)客戶(hù)端連接服務(wù)器時(shí),OnAccept()函數(shù)被調(diào)用。函 數(shù) 名 稱(chēng) 返 回 值功 能CListenSocket(CServerDlg* pServerDlg) 無(wú) 構(gòu)造函數(shù) ~ClistenSocket() 無(wú) 析構(gòu)函數(shù)VoidOnAccept(intnErrorCode) void 接受連接請(qǐng)求l CClientSocket 類(lèi):派生與MFC的CSocket類(lèi),用于接收客戶(hù)端和向其發(fā)送數(shù)據(jù)。在該類(lèi)中重寫(xiě)CAsyncSocket類(lèi)OnReceive()和OnClose()虛函數(shù)。函 數(shù) 名 稱(chēng) 返 回 值 功 能CClientSocket(CServerDlg *pServDlg 無(wú)構(gòu)造函數(shù)~CClientSocket() 無(wú)析構(gòu)函數(shù)Init() Void初始化SendUserList(CChatPacket *pPacket) Void發(fā)送用戶(hù)列表SendUserMsg(CChatPacket *pPacket) Void發(fā)送消息SaveUserInfo(SOCKADDR_IN clientAddr) Void保存用戶(hù)地址SaveUserInfo(constCUserInfo amp。userInfo) Void保存用戶(hù)狀態(tài)信息GetUserInfo() CUserInfo獲取用戶(hù)信息OnReceive(int nErrorCode) Void接收數(shù)據(jù)OnClose(int nErrorCode) Void關(guān)閉套接字l CServerAddressDlg: 用與設(shè)置服務(wù)器地址和斷口。l CServerApp:用于生成唯一實(shí)例。 服務(wù)器端主要過(guò)程介紹啟動(dòng)服務(wù)器:?jiǎn)?dòng)服務(wù)器的過(guò)程就是創(chuàng)建套接字并開(kāi)始監(jiān)聽(tīng)客戶(hù)端連接的過(guò)程。主要函數(shù): CSocket::Create()函數(shù);執(zhí)行過(guò)程: CSocket::Cretate 224。CAsyncSocket224。CAsyncSocket224。CAsyncSocket::Socket()224。CAsyncSocket::Bind()〉CAsyncSocket:: AtachHandle()224。CAsyncSocket::Asyncselect()MFC 的底部函數(shù)在AttachHandle()中完成,: 圖42 啟動(dòng)服務(wù)器流程服務(wù)器登陸如界面如圖43所示: 服務(wù)器登陸如界面初始化:l 列表試圖控件初始化l 用戶(hù)列表初始化l 讀取離線(xiàn)消息;離線(xiàn)消息包括:發(fā)送消息的用戶(hù),接收消息的用戶(hù),接收和發(fā)送消息的時(shí)間接受客戶(hù)端請(qǐng)求:CListenSocket::OnAccept()224。CServerDlg::ProcessPendingAccept().接收數(shù)據(jù):在FD_READ網(wǎng)絡(luò)事件發(fā)生時(shí),CClienSocket::OnReceive(), CArchive, CSocketFile 協(xié)同工作完成文件的工作,同時(shí)調(diào)用CSocket 類(lèi)的Receive()函數(shù):處理數(shù)據(jù):l 保存離線(xiàn)消息l 保存用戶(hù)信息l 更新用戶(hù)列表: 更新用戶(hù)列表的過(guò)程l 發(fā)送用戶(hù)鏈表l 轉(zhuǎn)發(fā)離線(xiàn)消息l 更新服務(wù)器界面刪除用戶(hù):l 顯示快捷欄l 刪除用戶(hù) 刪除用戶(hù) 禁止刪除用戶(hù)用戶(hù)離線(xiàn):l 更新服務(wù)器用戶(hù)列表中該用戶(hù)信息l 將該用戶(hù)從在線(xiàn)用戶(hù)列表中刪除l 通知在線(xiàn)用戶(hù)更新該用戶(hù)的狀態(tài)l 更新服務(wù)器界面l 刪除為該用戶(hù)分配的內(nèi)存空間退出:l 調(diào)用OnDestroy()函數(shù)l 保存用戶(hù)信息l 保存離線(xiàn)消息l 清理資源 客戶(hù)端設(shè)計(jì)實(shí)現(xiàn) 客戶(hù)端靜態(tài)類(lèi)圖 靜態(tài)類(lèi)圖 客戶(hù)端主要類(lèi)介紹l CClientDlg類(lèi):創(chuàng)建客戶(hù)端主窗口,創(chuàng)建聊天窗口,接收離線(xiàn)消息,發(fā)送離線(xiàn)消息和保存聊天記錄等。 函 數(shù) 名 稱(chēng)返 回 值功 能 CClientDlg(CWnd *pParent=NULL) 無(wú)構(gòu)造函數(shù)~CClientDlg() 無(wú)析夠函數(shù)Init() BOOL初始化InitListCtrlSetting() BOOL初始列表控件ConnectToServer() BOOL連接服務(wù)器BegingListen() BOOL監(jiān)聽(tīng)ProcessPendingAccept() Void接受對(duì)方連接ProcessPendingRead() Void接受數(shù)據(jù)包SendPacket(CChatPacket amp。packet) Void發(fā)送數(shù)據(jù)ReadPacket() Void接收服務(wù)器數(shù)據(jù)UpdateClientListCtl() Void更新用戶(hù)列表ShowOfflineMsg(CChatPacket *pPacket) Void顯示離線(xiàn)消息CreateUserList(CObList *pObList) Void創(chuàng)建用戶(hù)鏈表CreateChatDlg(CString *pChatDlg) Void創(chuàng)建聊天窗口SaveChatLog(CChatDlg *pChatDlg) Void保存聊天記錄OnDblclkClientList(NMHDR *pNMHDR,LRESULT *pResult) Void雙擊列表視圖控件的消息響應(yīng)函數(shù)l CChatDlg類(lèi):編輯和顯示消息。該類(lèi)有三個(gè)構(gòu)造函數(shù)用于創(chuàng)建3種不同情況下的窗口:(1) 用與主動(dòng)與其他用戶(hù)聊天。對(duì)方可以是在線(xiàn),也可以是離線(xiàn)狀態(tài)。(2) 顯示離線(xiàn)消息窗口。(3) 被動(dòng)聊天窗口,其他用戶(hù)向該用戶(hù)發(fā)起的聊天請(qǐng)求所創(chuàng)建的窗口。 函數(shù)名稱(chēng)返回值功能CChatDlg(CWnd *pParent=NULL)無(wú)被動(dòng)聊天窗口CChatDlg(CWnd *pParent,const CUser amp。pPacketConst CUserInfo amp。userInfo)無(wú)在線(xiàn)/離線(xiàn)窗口CChatDlg(CWnd *pParent,CChatPacket *pPacket)無(wú)顯示離線(xiàn)聊天窗口~CChatDlg()無(wú)析構(gòu)函數(shù)PreTranslateMessage(MSG *pMsg)BOOL處理鍵盤(pán)消息InitSocket()BOOL創(chuàng)建套接字ConnectToPeer()BOOL 連接對(duì)方ProcessPendingRead()Void接收數(shù)據(jù)DisplayRecvMessage(CChatPacket *pPacket)Void顯示消息DisplayOfflineMessage(CChatPacket *pPacket)Void顯示接收到的離線(xiàn)消息SendPeerMessage()Void發(fā)送消息InitArchive()Void初始化讀入對(duì)象etPeerInfo(CUserInfo amp。peerInfo)Void設(shè)置對(duì)方信息SetUserInfo(CUserInfo amp。userInfo)Void設(shè)置用戶(hù)信息*GetChatSocket()Void返回CChatSocket指針DisPlaySentMessage(CChatPacket *pPacket)Void顯示發(fā)送的離線(xiàn)消息OnDestroy()Void消息響應(yīng)函數(shù)DisPlaySentMessage()Void顯示發(fā)送的在線(xiàn)消息l CListenSocket類(lèi):派生與CSocket類(lèi),用于監(jiān)聽(tīng)其他用戶(hù)的連接請(qǐng)求,該類(lèi)重寫(xiě)了OnAccept()函數(shù)。l CChatSOcket類(lèi):派生與CSocket類(lèi),用于監(jiān)聽(tīng)其他用戶(hù)的通信,該類(lèi)重寫(xiě)了OnReceive()函數(shù)。l CClientLoginDlg類(lèi):派生與CDialog類(lèi),用與創(chuàng)建服務(wù)器對(duì)話(huà)框。客戶(hù)端主要去實(shí)現(xiàn)的是功能:初始化,創(chuàng)建初始化窗口,接收窗口,接收離線(xiàn)聊天消息以及登陸控制。初始化:l 初始化列表l 圖控件開(kāi)始監(jiān)聽(tīng)l 連接服務(wù)器, 登陸用戶(hù)圖 : 創(chuàng)建聊天窗口在線(xiàn)聊天:l 按情況CChatDlg類(lèi)構(gòu)造函數(shù)l 連接對(duì)方l 發(fā)送消息l 接受消息l 發(fā)送離線(xiàn)消息被動(dòng)聊天:l 創(chuàng)建聊天窗口l 保存聊天記錄 圖412 發(fā)送離線(xiàn)消息 測(cè)試意義本章對(duì)我們的系統(tǒng)做具體的測(cè)試,驗(yàn)證系統(tǒng)的功能是否得以實(shí)現(xiàn)。(1).測(cè)試是為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行的程序的過(guò)程;(2).好的測(cè)試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試方案;(3) 成功的測(cè)試時(shí)發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。從上述規(guī)則可以看出,測(cè)試的正確定義是“為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過(guò)程”。正確認(rèn)識(shí)測(cè)試是非常重要的,測(cè)試目標(biāo)決定了測(cè)試方案的設(shè)計(jì)。沒(méi)有發(fā)現(xiàn)錯(cuò)誤的測(cè)試也是有價(jià)值的,完整的測(cè)試是評(píng)定測(cè)試質(zhì)量的一種方法。軟件的測(cè)試分為兩種:黑盒測(cè)試和白盒測(cè)試。黑盒測(cè)試:黑盒測(cè)試也稱(chēng)功能測(cè)試,它是通過(guò)測(cè)試來(lái)檢測(cè)每個(gè)功能是否都能正常使用。在測(cè)試地,把程序看作一個(gè)不能打開(kāi)的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,在程序接口進(jìn)行測(cè)試。它只檢查程序功能是否按照需求規(guī)格說(shuō)明書(shū)的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息。黑盒測(cè)試著眼于程序外部結(jié)構(gòu),不考慮內(nèi)部邏輯結(jié)構(gòu),主要針對(duì)軟件界面和軟件功能進(jìn)行測(cè)試。黑盒測(cè)試是以用戶(hù)的角度,從輸入數(shù)據(jù)與輸出數(shù)據(jù)的對(duì)應(yīng)關(guān)系出發(fā)進(jìn)行測(cè)試的。很明顯,如果外部特性本身有問(wèn)題或規(guī)格說(shuō)明的規(guī)定有誤,用墨盒測(cè)試方法是發(fā)現(xiàn)不了的。白盒測(cè)試:軟件的白盒測(cè)試是對(duì)軟件的過(guò)程性細(xì)節(jié)做細(xì)致的檢查。這種方法是把測(cè)試對(duì)象看做一個(gè)打開(kāi)的盒子,它允許測(cè)試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計(jì)或選擇測(cè)試用例,對(duì)程序所有邏輯路徑進(jìn)行測(cè)試。通過(guò)在不同點(diǎn)檢查程序狀態(tài),確定實(shí)際狀態(tài)是否與預(yù)期的狀態(tài)一致。因此白盒測(cè)試又稱(chēng)為結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試。白盒測(cè)試主要是想對(duì)程序模塊進(jìn)行如下檢查:對(duì)程序模塊的所有獨(dú)立的執(zhí)行路徑至少測(cè)試一遍。對(duì)所有的邏輯判定,取“真”與取“假”的兩種情況都能至少測(cè)一遍。在循環(huán)的邊界和運(yùn)行的界限內(nèi)執(zhí)行循環(huán)體。測(cè)試內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性,等等。 測(cè)試用例黑盒測(cè)試:主要是同學(xué)幫助一起測(cè)試系統(tǒng)的功能,看看主要功能是否能得以實(shí)現(xiàn)。白盒測(cè)試:主要是在編寫(xiě)代碼的過(guò)程中對(duì)各個(gè)類(lèi)進(jìn)行測(cè)試,檢查各個(gè)類(lèi)的功能是否實(shí)現(xiàn),最后是對(duì)整個(gè)系統(tǒng)的測(cè)試,進(jìn)一步檢查各個(gè)類(lèi)的功能。經(jīng)過(guò)以上測(cè)試,系統(tǒng)基本完成所需功能。表格 功能描述用戶(hù)登錄用例目的測(cè)試用戶(hù)登錄功能是否正常前提條件客戶(hù)端程序和服務(wù)器端程序處于運(yùn)行狀態(tài)輸入/動(dòng)作期望的輸出/相應(yīng)實(shí)際情況示例1:輸入正確的用戶(hù)名、密 碼、服務(wù)器IP和端口號(hào)用戶(hù)成功登陸,關(guān)閉登陸窗體,彈出客戶(hù)端主界面與期望輸出相同示例2:不輸入用戶(hù)名密碼、輸入服務(wù)器IP和端口號(hào)提示用戶(hù)“用戶(hù)名不能為空!”或“密碼不能為空!” 與期望輸出相同示例3:輸入正確的用戶(hù)名、密碼,輸入錯(cuò)誤服務(wù)器IP和端口號(hào)用戶(hù)登陸失敗,提示連接服務(wù)器失敗與期望輸出相同示例4:輸入錯(cuò)誤的用戶(hù)名或密碼,輸入正確服務(wù)器IP和端口號(hào)用戶(hù)登錄失敗,提示用戶(hù)名或密碼輸入錯(cuò)誤與期望輸出相同……
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1