基于MFC的即時(shí)通訊軟件的設(shè)計(jì)與實(shí)現(xiàn)-詳細(xì)設(shè)計(jì)_第1頁(yè)
基于MFC的即時(shí)通訊軟件的設(shè)計(jì)與實(shí)現(xiàn)-詳細(xì)設(shè)計(jì)_第2頁(yè)
基于MFC的即時(shí)通訊軟件的設(shè)計(jì)與實(shí)現(xiàn)-詳細(xì)設(shè)計(jì)_第3頁(yè)
基于MFC的即時(shí)通訊軟件的設(shè)計(jì)與實(shí)現(xiàn)-詳細(xì)設(shè)計(jì)_第4頁(yè)
基于MFC的即時(shí)通訊軟件的設(shè)計(jì)與實(shí)現(xiàn)-詳細(xì)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

南昌航空大學(xué)東軟班詳細(xì)設(shè)計(jì)報(bào)告版本:0.1.0基于MFC的即時(shí)通訊軟件的設(shè)計(jì)與實(shí)現(xiàn)詳細(xì)設(shè)計(jì)總頁(yè)數(shù)23正文20附錄無(wú)生效日期2014/4/8編制批準(zhǔn)修改履歷修改編號(hào)日期修改人版本號(hào)修改內(nèi)容10.1.0初始做成目錄HYPERLINK1 文檔概述 4HYPERLINK1.1 文檔目的和范圍 4HYPERLINK1.2 術(shù)語(yǔ)/縮略語(yǔ) 4HYPERLINK1.3 參考文檔 4HYPERLINK2 處理 4HYPERLINK2.1 模塊數(shù)據(jù)結(jié)構(gòu)定義 4HYPERLINK2.1.1全局變量定義 4HYPERLINK2.2 模塊功能實(shí)現(xiàn) 6HYPERLINK2.2.1模塊共有函數(shù)部分 6HYPERLINK2.2.2服務(wù)器模塊內(nèi)部函數(shù) 15HYPERLINK2.2.3客戶端模塊內(nèi)部函數(shù) 18文檔概述文檔目的和范圍該項(xiàng)目主要完成的是Windows下基于MFC的聊天軟件,主要包括客戶端模塊和服務(wù)器模塊,本文檔的主要內(nèi)容是本項(xiàng)目的各個(gè)模塊詳細(xì)設(shè)計(jì),包括相應(yīng)的模塊結(jié)構(gòu),函數(shù)聲明,宏定義等,主要目的是為項(xiàng)目的編碼階段提供設(shè)計(jì)參考。術(shù)語(yǔ)/縮略語(yǔ)序號(hào)術(shù)語(yǔ)/縮略語(yǔ)說(shuō)明1MFC(MicrosotProgramingInterface)微軟基礎(chǔ)類庫(kù)2SOCKET實(shí)現(xiàn)信息的發(fā)送與接收參考文檔序號(hào)文檔名作者時(shí)間版本1詳細(xì)設(shè)計(jì)模板Neusoft2007-11-90.1.0處理模塊數(shù)據(jù)結(jié)構(gòu)定義2.1.1全局變量定義宏定義constintMSG_LOGOIN=0x01;//登陸constintMSG_SEND=0x11;//發(fā)送消息constintMSG_CLOSE=0x02;//退出constintMSG_UPDATE=0x21;//更新信息數(shù)據(jù)結(jié)構(gòu)定義typedefstructtagHeader{ inttype;//協(xié)議類型 intnContentLen;//將要發(fā)送的內(nèi)容的長(zhǎng)度 charto_user[20]; charfrom_user[20];}HEADER,*LPHEADER;模塊功能實(shí)現(xiàn)2.2.1模塊共有函數(shù)部分msg_process【函數(shù)式樣】函數(shù)名msg_process文件名client.cppserver.cpp功能概要分辨接收到的消息類型并處理記述形式voidmsg_process(Messagemsg)參數(shù)類型變量名I/O說(shuō)明MessagemsgI接收到的消息返回值類型void說(shuō)明值--詳細(xì)說(shuō)明底層接收到消息后,觸發(fā)槽函數(shù)msg_process,在函數(shù)中通過(guò)對(duì)消息解析后調(diào)用不同的處理函數(shù)進(jìn)行消息處理。使用注意事項(xiàng)無(wú)【函數(shù)處理流程】send_msg【函數(shù)式樣】函數(shù)名send_msg文件名udpsocket.cpp功能概要發(fā)送信息至服務(wù)器記述形式intsend_msg(intmsg_op,Messagemsg,QStringip)參數(shù)類型變量名I/O說(shuō)明intmsg_opI要發(fā)送的信息的操作碼MessagemsgI要發(fā)送的信息QStringipI信息接收端的ip地址返回值類型int說(shuō)明值SUCC正常結(jié)束FAIL異常結(jié)束詳細(xì)說(shuō)明將已經(jīng)創(chuàng)建并填寫(xiě)的消息發(fā)送至服務(wù)器。使用注意事項(xiàng)消息必須預(yù)先創(chuàng)建好并填入信息后傳入。【函數(shù)處理流程】draw_arc_windown【函數(shù)式樣】函數(shù)名draw_arc_windown文件名ui界面文件中功能概要繪制圓角窗口記述形式booldraw_arc_windown()參數(shù)類型變量名I/O說(shuō)明返回值類型bool說(shuō)明值true正常結(jié)束fail異常結(jié)束詳細(xì)說(shuō)明繪制一個(gè)圓角矩形,并將圓角矩形設(shè)為當(dāng)前窗口的矩形邊框,是窗口設(shè)置成為圓角矩形。使用注意事項(xiàng)無(wú)【函數(shù)處理流程】get_local_ip【函數(shù)式樣】函數(shù)名get_local_ip文件名udpsocket.cppserver.cpp功能概要獲得本機(jī)當(dāng)前的ip記述形式QStringget_local_ip();參數(shù)類型變量名I/O說(shuō)明返回值類型QString說(shuō)明值ip返回本機(jī)當(dāng)前的ip地址詳細(xì)說(shuō)明函數(shù)內(nèi)部先通過(guò)接口獲得包括環(huán)回地址在內(nèi)的所有ip,之后通過(guò)篩選選出正確的當(dāng)前ip。使用注意事項(xiàng)無(wú)【函數(shù)處理流程】receive_msg【函數(shù)式樣】函數(shù)名receive_msg文件名udpsocket.cpp功能概要接收信息并存儲(chǔ)記述形式voidreceive_msg()參數(shù)類型變量名I/O說(shuō)明返回值類型void說(shuō)明值--詳細(xì)說(shuō)明當(dāng)readyRead()信號(hào)被觸發(fā)時(shí),進(jìn)入該函數(shù),獲得消息隊(duì)列中的信息,并發(fā)送信號(hào)msg_received信號(hào)。使用注意事項(xiàng)無(wú)【函數(shù)處理流程】user_*系列函數(shù)【函數(shù)式樣】函數(shù)名user_*()文件名client.cppserver.cpp功能概要處理不同的消息所執(zhí)行的對(duì)應(yīng)函數(shù)記述形式voiduser_*(QStringmsg)(槽函數(shù))參數(shù)類型變量名I/O說(shuō)明QStringmsgI要處理的消息返回值類型void說(shuō)明值--詳細(xì)說(shuō)明處理對(duì)應(yīng)類型的消息所執(zhí)行的函數(shù),該系列函數(shù)內(nèi)部結(jié)構(gòu)一致,執(zhí)行結(jié)束后將執(zhí)行結(jié)果返回各個(gè)UI模塊進(jìn)行處理。使用注意事項(xiàng)無(wú)【函數(shù)處理流程】2.2.2服務(wù)器模塊內(nèi)部函數(shù)OnLogoIn()【函數(shù)式樣】函數(shù)名OnLogoIn()文件名CClientSocket.cpp功能概要登陸記述形式voidCClientSocket::OnLogoIN(char*buff,intnlen,charfrom_user[20])參數(shù)類型變量名I/O說(shuō)明CClientSocketI返回值類型void說(shuō)明值--詳細(xì)說(shuō)明用戶登陸后更新服務(wù)器端用戶列表并在控件中顯示登陸時(shí)間使用注意事項(xiàng)無(wú)【函數(shù)處理流程】OnMSGTranslate函數(shù)名OnMSGTranslate()文件名CClientSocket.cpp功能概要轉(zhuǎn)發(fā)消息記述形式VoidCClientSocket::OnMSGTranslate(char*buff,intnlen,charto_user[20],charfrom_user[20])參數(shù)類型變量名I/O說(shuō)明返回值類型-說(shuō)明值--詳細(xì)說(shuō)明實(shí)現(xiàn)群聊和私聊功能使用注意事項(xiàng)【函數(shù)處理流程】UpdateAllUser函數(shù)名UpdateAllUser文件名CClientSocket.cpp功能概要更新所有在線用戶記述形式voidCClientSocket::UpdateAllUser(CStringstrUserInfo,charfrom_user[20])參數(shù)類型變量名I/O說(shuō)明CClientSocketstrUserInfoI保存有當(dāng)前的鼠標(biāo)事件返回值類型void說(shuō)明值--詳細(xì)說(shuō)明由Unicode轉(zhuǎn)換至通用字符使用注意事項(xiàng)無(wú)UpdateServerLog函數(shù)名UpdateServerLog文件名CClientSocket.cpp功能概要更新服務(wù)器在線名單記述形式CStringCClientSocket::UpdateServerLog()參數(shù)類型變量名I/O說(shuō)明CStringstrUserInfoI返回值類型void說(shuō)明值--詳細(xì)說(shuō)明更新服務(wù)器顯示使用注意事項(xiàng)無(wú)OnAccept函數(shù)名OnAccept文件名ServerSocket.cpp功能概要接收客戶端登陸請(qǐng)求記述形式voidCServerSocket::OnAccept(intnErrorCode)參數(shù)類型變量名I/O說(shuō)明voidnErrorCodeISocket通信失敗錯(cuò)誤代碼返回值類型void說(shuō)明值--詳細(xì)說(shuō)明接收到一個(gè)連接請(qǐng)求后,開(kāi)辟并初始化一個(gè)theClientSock*類型空間使用注意事項(xiàng)無(wú)OnReceive函數(shù)名OnReceive文件名CClientSocket.cpp功能概要接收并處理服務(wù)端數(shù)據(jù)記述形式VoidCClientSocket::OnReceive(intnErrorCode)參數(shù)類型變量名I/O說(shuō)明-voidnErrorCodeISocket通信失敗錯(cuò)誤代碼返回值類型void說(shuō)明值--詳細(xì)說(shuō)明接收客戶端發(fā)來(lái)的數(shù)據(jù),判斷是登陸類型數(shù)據(jù)還是發(fā)送消息數(shù)據(jù)類型,并根據(jù)消息類型處理數(shù)據(jù)使用注意事項(xiàng)2.2.3客戶端模塊內(nèi)部函數(shù)OnBnClickedBtnLogoin函數(shù)名OnBnClickedBtnSend文件名LogoInDlg.cpp功能概要客戶端登陸服務(wù)器記述形式VoidCLogoInDlg::OnBnClickedBtnLogoin()參數(shù)類型變量名I/O說(shuō)明Void--返回值類型void說(shuō)明值--詳細(xì)說(shuō)明登陸服務(wù)器時(shí)檢查填寫(xiě)用戶名的正確性并發(fā)送給服務(wù)器使用注意事項(xiàng)無(wú)LogoIn函數(shù)名OnBnClickedBtnSend文件名LogoInDlg.cpp功能概要客戶端登陸服務(wù)器記述形式BOOLCClientSocket::LogoIn(LPSTRlpBuff,intnlen,charfrom_user[20])參數(shù)類型變量名I/O說(shuō)明--返回值類型Bool說(shuō)明值TRUE正常結(jié)束false異常結(jié)束詳細(xì)說(shuō)明登陸服務(wù)器時(shí)發(fā)送數(shù)據(jù)自定義協(xié)議使用注意事項(xiàng)無(wú)OnBnClickedBtnSend函數(shù)名OnBnClickedBtnSend文件名NetChatClientDlg.cpp功能概要發(fā)送消息記述形式voidCNetChatClientDlg::OnBnClickedBtnSend()參數(shù)類型變量名I/O說(shuō)明Void-返回值類型void說(shuō)明值--詳細(xì)說(shuō)明在用戶列表選擇聊天對(duì)象后點(diǎn)擊發(fā)送按鈕將信息發(fā)送至服務(wù)器,由服務(wù)器再轉(zhuǎn)發(fā)至聊天對(duì)象使用注意事項(xiàng)無(wú)【函數(shù)處理流程】UpdateUserInfo函數(shù)名UpdateUserInfo文件名NetChatClientDlg.cpp功能概要顯示所有用戶記述形式voidCNetChatClientDlg::UpdateUserInfo(CStringstrInfo)參數(shù)類型變量名I/O說(shuō)明CNetChatClientDlgstrInfoI用戶返回值類型

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論