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

正文內(nèi)容

聊天系統(tǒng)客戶端的設(shè)計(jì)與實(shí)現(xiàn)本科生畢業(yè)設(shè)計(jì)論文-閱讀頁

2025-07-30 20:21本頁面
  

【正文】 據(jù)的程序。 PC機(jī)給它的端口命名和編號。在Inter 上,網(wǎng)絡(luò)只是簡單地對協(xié)議端口編號。成千個 PC 機(jī)應(yīng)用程序使用此方案。同樣,程序員將每個 Inter 協(xié)議端口與一個特定的應(yīng)用程序和功能聯(lián)系在一起。通用口分配是特定應(yīng)用程序廣泛使用的一個協(xié)議端 口。例如,平凡文件傳輸協(xié)議( FTP)的通用口分配是端口號 21的。 本科生畢業(yè)設(shè)計(jì)(論文) 14 第 三 章 詳細(xì) 設(shè)計(jì) 本章將論述軟件系統(tǒng)的面向?qū)ο笤O(shè)計(jì)過程。 類設(shè)計(jì) 總體結(jié)構(gòu) 服務(wù)器的類總體結(jié)構(gòu): CServerApp 包含全局的數(shù)據(jù)結(jié)構(gòu) CData,CMsg1,CMsg2,CMsg3,CMsg4,CMsgChangePI,CMsgModifyPwd, CMsgOnlineFriend,CMsgPerson,CshowOnlinePeople 處理傳輸數(shù)據(jù) 通訊類 CServerSocket, CSendSocket, CRecvSocket 處理底層通訊的類,與外部的接口是 CserverSocket 類,提供了一個簡單的接口 4.其它類 CMainFrame,CServerDoc,CServerView,CSetupDlg,CAboutDlg UserInfo 結(jié)構(gòu)存儲在線人的信息 客戶端的類總體結(jié)構(gòu) : CClientApp 包含全局的數(shù)據(jù)結(jié)構(gòu) CData,CMsg1,CMsg2,CMsg3,CMsg4,CMsgChangePI,CMsgModifyPwd, CMsgOnlineFriend,CMsgPerson,CshowOnlinePeople 處理傳輸數(shù)據(jù) 通訊類 CClientSocket 處理底層通訊的類,提供了一個簡單的接口 CmainFrame 處理用戶界面和一些接受數(shù)據(jù)的響應(yīng) ,主要的處理過程都在這個類里實(shí)現(xiàn)。提供了一個漂 亮的界面。封閉了 Window 的 API 函數(shù) : UserInfo 結(jié)構(gòu)存儲在線人的信息 FriendState 在好友線信息結(jié)構(gòu) SaveMsg 消息的存儲結(jié)構(gòu) Sparam 傳給線程的參數(shù)結(jié)構(gòu) 服務(wù)器端底層通訊類 設(shè)計(jì) 為了使能及時響應(yīng)用戶的請求,當(dāng)用戶很多時,仍然能夠適應(yīng)要求,我把偵聽與發(fā)送數(shù)據(jù)的 Socket 分開,并分別都建立了多個實(shí)例, 也就是說,支持多個端口的偵聽,發(fā)送數(shù)據(jù)使用的是多個端口,我只對偵聽端口感興趣,對發(fā)送 數(shù)據(jù)的端口不感興趣,因?yàn)椋l(fā)送端口是多少都無所謂。 因?yàn)榉?wù)器是多線程的發(fā)送數(shù)據(jù),有一個請求,就建 立一個線程進(jìn)行處理。 SendData 函數(shù)的實(shí)現(xiàn)算法,通過設(shè)置一個緩沖區(qū)長度為 N,然后,為每一次數(shù)據(jù)進(jìn)行統(tǒng)計(jì),發(fā)一次,就加 1,然后把發(fā)送數(shù)據(jù)中的 This=count%N,且把緩沖區(qū)中第 This個成員設(shè)為 0,在發(fā)送端,就要數(shù)組中的第 This 個成員是否為 1即可,在接受到的確認(rèn)信息中,取出 This 項(xiàng),再為緩沖區(qū)中第 This 項(xiàng)設(shè)為 1,這樣就可以快 速且可靠的判斷發(fā)送數(shù)據(jù)是否得到響應(yīng)回來了。兩個函數(shù)的適應(yīng)情況, SendData 函數(shù),適用于需要直接發(fā)送數(shù)據(jù)的場合,不需要回應(yīng)。而 SendDataInThread是建立一個線程,在線程里調(diào)用 SendData 函數(shù)進(jìn)行發(fā)送數(shù) 據(jù),通過向指定接受窗口發(fā)送消息來確定是否成功。 因?yàn)榭蛻舳丝梢远嗑€程的發(fā)送數(shù)據(jù),有一個請求,就建立一個線程進(jìn)行處理。 SendData函數(shù)的實(shí)現(xiàn)算法,與服務(wù)器端是基本一樣的原理,通過設(shè)置一個緩沖區(qū)長度為 N,然后,為每一次數(shù)據(jù)進(jìn)行統(tǒng)計(jì),發(fā)一次,就加 1,然后把發(fā)送數(shù)據(jù)中的This=count%N,且把緩沖區(qū)中第 This 個成員設(shè)為 0,在發(fā)送端,就要數(shù)組中的第 This本科生畢業(yè)設(shè)計(jì)(論文) 17 個成員是否為 1 即可,在接受到的確認(rèn)信息中,取出 This 項(xiàng),再為緩沖區(qū)中第 This 項(xiàng)設(shè)為 1,這樣就可以快速且可靠的判斷發(fā)送數(shù)據(jù)是否得到響應(yīng)回來了。在 SendDataInThread 函數(shù)中,調(diào)用 SendData函數(shù)進(jìn)行發(fā)送數(shù)據(jù)。因?yàn)槭褂?udp 協(xié)議發(fā)送數(shù)據(jù), sendto 和 recvfrom函數(shù),只能處理串的發(fā)送和接受,所以,把數(shù)據(jù)壓為串,和從串中恢復(fù)數(shù)據(jù),是這些數(shù)據(jù)類所必須完成的功能。在數(shù)據(jù)的打包過程中,對字符串的打包原理為:先存入串長度,再存入串。打包時,按照某一順序,對其進(jìn)行數(shù)據(jù)的存入串中,解開時,以相同的順序進(jìn)行還原即可。 服務(wù)器 應(yīng)用程序類設(shè)計(jì) CServerApp 類, 定義了服務(wù)器全局的數(shù)據(jù)結(jié)構(gòu), class CServerApp : public CWinApp { public: void SaveMyProfileSettings()。 //讀取配置文件 CServerApp()。 //服務(wù)器端的上層 socket 接口 CArrayDWORD,DWORDm_anPort。 // 發(fā)送端口的個數(shù) int m_nTimeOut。 //標(biāo)志服務(wù)是否已經(jīng)開啟 UserOnline* m_pUsers。 //數(shù)據(jù)庫對象 CString m_sConnectString。 //當(dāng)前在線的人數(shù) int m_nMaxUserId。 //當(dāng)前從啟動后,接受到多少交請求信息 CString m_strBroadcastPwd。 //數(shù)據(jù)源的字符串 CString m_strDataSUID。 //數(shù)據(jù)源的密碼字符串 CString m_strLocalIP。 //服務(wù)器程序的初始化部分 afx_msg void OnAppAbout()。 //進(jìn)行服務(wù)器設(shè)置 afx_msg void OnStartServer()。 afx_msg void OnUserOnline()。 //關(guān)閉系統(tǒng)服務(wù) afx_msg void OnUpdateCloseServer(CCmdUI* pCmdUI)。 //處理程序的退出,執(zhí)行程序中必要的清理工作 afx_msg void OnUpdateUserOnline(CCmdUI* pCmdUI)。 客戶端 應(yīng)用程序類設(shè)計(jì) CClientApp 類,定義了客戶端全局的數(shù)據(jù)結(jié)構(gòu),客戶端應(yīng)用程序的入口 class CClientApp : public CWinApp { public: CClientApp()。 //用戶的在線狀態(tài) (0,1,2 分別為離線,在線,隱身 ) int m_nNumberHeadBmp。 //存儲好友信息的數(shù)組 CArrayUserInfo*,UserInfo*m_aStranger。 //存儲好友的在線狀態(tài)及相關(guān)信息 CArrayFriendState*,FriendState*m_aStrangerState。 //接受到的系統(tǒng)消息數(shù)組 int m_nCurSysMsg。存放廣播消息的數(shù)組 int m_nCurBroadcast。//存放自己被別人加為好友的信息 int m_nCurBeAdd。 //底層通訊類的實(shí)例對象 DWORD m_uCurrentUserID。當(dāng)前用戶的密碼 CString m_strCurUserDir。 服務(wù)器 IP 地址的字符串 DWORD m_uServerIP。 服務(wù)器的端口號 BYTE m_cLoginType。 //用戶頭像的大圖標(biāo)列表 CImageList m_imaSmall //用戶頭像的小圖標(biāo)列表 CImageListm_imaHead。//用來指向在運(yùn)行時,動態(tài)創(chuàng)建的 Cbitmap 對象數(shù)組 int m_nBitmapNum。 //包括客戶端的初始化和配置信息的讀取等 virtual int ExitInstance()。 //把當(dāng)前用戶的 ID 號,加入配置文件中,下次登陸就可以選擇了 BOOL SaveUserInfo()。 //從磁盤中讀取用戶信息 本科生畢業(yè)設(shè)計(jì)(論文) 20 BOOL LoadFaceBmp()。aID)。 afx_msg void OnSendBroadcast()。 //調(diào)用向所有好友發(fā)送數(shù)據(jù)的對話框 afx_msg void OnSysSetup()。 //調(diào)用查找用戶的對話框 afx_msg void OnSendFile()。 本科生畢業(yè)設(shè)計(jì)(論文) 21 第 四 章 系統(tǒng)實(shí)現(xiàn) 系統(tǒng)環(huán)境 軟件環(huán)境說明: Microsoft Visual; C++ ; SQL Server20xx; Windows XP 硬件環(huán)境說明: CPU: Intel(R) Pentium(R) processor ; 內(nèi)存: 256M; 硬盤: 40G 安裝: 1.打開控制面板,選擇“管理工具”,打開 “數(shù)據(jù)源”,會出現(xiàn)如下圖所示的 ODBC數(shù)據(jù)源管理器。如下圖 42 所示: 圖 42 ODBC 數(shù)據(jù)源管理器 本科生畢業(yè)設(shè)計(jì)(論文) 22 3.點(diǎn)擊“ Microsoft Accss Driver(*.mdb)”然后點(diǎn)擊“完成”,點(diǎn)擊“完成”后,出現(xiàn)“ ODBC Microsoft Accss 安裝”界面,輸入數(shù)據(jù)源名“ IDServer” ,點(diǎn)擊“完成”即可。 如圖 44 所示: 圖 44 ODBC 數(shù)據(jù)源管理器 點(diǎn)擊“確定”即完成操作。首先打開您所安裝的文件夾,點(diǎn)擊“ ”文件,打開服務(wù)器,單擊“啟動服務(wù)器”即可啟動服務(wù)器。如圖 47所示: 圖 47 聊天系統(tǒng)用戶登錄界面 本系統(tǒng)大體可以分成 登錄模塊、查找用戶模塊、查看在線用戶模塊、發(fā)群體消息模塊、系統(tǒng)參數(shù)模塊、 個人設(shè)定模塊 、 正常 聊天模塊七 大模塊。 具體實(shí)現(xiàn) 在用戶要登錄聊天系統(tǒng)時,系統(tǒng) 會進(jìn)入如下圖所示的用戶登錄界面,在顯示的信息中包括用戶號碼和密碼,用戶需正確輸入個人號碼和密碼才能進(jìn)入下一界面。點(diǎn)擊系統(tǒng),會出現(xiàn)下列信息,按照需要選擇,即可達(dá)到相應(yīng)功能。 如下圖 410 所示: 圖 410 按 ID 號查找用戶功能號 右鍵單擊所查找的用戶,即可出現(xiàn)“加為好友”和“詳細(xì)資料”項(xiàng)。單擊“詳細(xì)資料”及可查看所查用戶的詳細(xì)資料。對已經(jīng)查找到的在線用戶單擊右鍵同樣會出現(xiàn)“加為好友”和“詳細(xì)資料”項(xiàng),執(zhí)行結(jié)果同查找用戶執(zhí)行結(jié)果。 如下圖 414 所示: 本科生畢業(yè)設(shè)計(jì)(論文) 27 圖 414 發(fā)送群體消息對話框 用戶好友收到消息對話框如圖 415 所示: 圖 415 發(fā)送群體消息對話框 系統(tǒng)參數(shù)模塊 點(diǎn)擊“系統(tǒng)參數(shù)”選項(xiàng),能查看用戶的服務(wù)器地址和服務(wù)器端口。 如下圖 417 418 所示: 圖 417 用戶詳細(xì)信息界面 圖 418 用戶修改密碼界面 正常聊天模塊 在主界面中,在好友圖標(biāo)處左鍵單擊即可出現(xiàn)收發(fā)消息界面,可方便向該好友發(fā)送消息。確保程序在網(wǎng)絡(luò)上的連接正確。通過編譯后,可直接運(yùn)行程序。啟動時,服務(wù)器 已經(jīng)設(shè) 置好服務(wù)器地址 , 服務(wù)器地址為 , 端口號默認(rèn)為 4000,如啟動成功,則顯示 服務(wù)器啟動成功。 如圖 421 422 所示: 圖 421 用戶登錄 本科生畢業(yè)設(shè)計(jì)(論文) 30 圖 422 服務(wù)器驗(yàn)證 如需要驗(yàn)證,則進(jìn)入服務(wù)器驗(yàn)證,驗(yàn)證服務(wù)器地址和端口號 是否正確,如不需要,則退出 登錄。 圖 423 登錄主界面 客戶端啟動成功后 便可 進(jìn)行 自由聊天 及實(shí)現(xiàn)各項(xiàng)系統(tǒng)功能。 本 課題 主要做了以下工作: 。 ,進(jìn)行整個系統(tǒng)的各 個部分的詳細(xì)設(shè)計(jì)。而客戶端的設(shè)計(jì)有很多都需要完善。而且,由于時間關(guān)系,客戶端還有些功能沒有完全。 。 ,在本程序中,沒有對本地密碼進(jìn)行加密。 ,響應(yīng)從服務(wù)器發(fā)來的數(shù)據(jù),是在主線程里執(zhí)行的,所以,當(dāng)接受數(shù)據(jù)忙時,就會出現(xiàn)沒有響應(yīng)的情況。 本科生畢業(yè)設(shè)計(jì)(論文) 32 謝 辭 在畢業(yè)論文完成之際, 我 在此 對 郭 金令老師 表示衷心的感謝! 在整個畢業(yè)設(shè)計(jì)過程中 , 非常感謝 老師和同學(xué) 在各個方面的 悉心 指導(dǎo) 。在今后的 工作生活中,我將會以他為榜樣,向著 郭老師指出的方向和高度 努力 ,使我對計(jì)算機(jī)軟件開發(fā)領(lǐng)域有了一個新的、更高層次的認(rèn)識。 endif /////////////////////////////////////
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1