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

正文內(nèi)容

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

2025-07-10 20:21本頁(yè)面
  

【正文】 最后,向所有在學(xué)習(xí)上給 過(guò) 我?guī)椭椭С值膶W(xué)院領(lǐng)導(dǎo)、老師和同學(xué)致以最衷心的感謝 ! 謝謝 ! 本科生畢業(yè)設(shè)計(jì)(論文) 33 參考文獻(xiàn) [1]官章全 .VC60 高級(jí)編程范例 [M].北京: 電子工業(yè)出版社 ,20xx:72~ 163 [2]張海藩 .軟件工程導(dǎo)論 [M].北京: 清華大學(xué)出版社 ,1998:18~ 209 [3]謝希仁 .計(jì)算機(jī)網(wǎng)絡(luò) [M].北京: 電子工業(yè)出版社 ,1999:103~ 198 [4]王國(guó)印 .譯 Visual C++TM 技術(shù)內(nèi)幕(第二版) [M].北京: 清華大學(xué)出版社 ,1996:23~ 132 [5]徐軍譯 .Visual C++5 開發(fā)人員指南 [M].北京: 機(jī)械工業(yè)出版社 ,1995:64~ 239 [6]木林森 .Visual C ++ 使用與開發(fā) [M].北京: 清華大學(xué)出版社 ,1992:85~ 189 [7]汪成為 .面向?qū)ο蠓治?、設(shè)計(jì)及應(yīng)用 [M].北京: 國(guó)防工業(yè)出版社 , 1992:216~ 386 [8]譚浩強(qiáng) .C 程序設(shè)計(jì) [M].北京: 清華大學(xué)出版社 ,1994:64~ 162 [9]賀善侃 .社會(huì)發(fā)展的新紀(jì)元 [M].上海:上海辭書出版社 ,20xx:47~ 230 [10]Rosemary Marketing Customer[M]. Massachusetts Institute of Technology journal,20xx:23~ 199 本科生畢業(yè)設(shè)計(jì)(論文) 34 附 錄 附錄 1: 源代碼 // : implementation file include include include include include ifdef _DEBUG define new DEBUG_NEW undef THIS_FILE static char THIS_FILE[] = __FILE__。 老師 不懈的研究精神和崇高的敬業(yè)精神 深深震撼了 我 。進(jìn)一步考慮,如何能改善這種情況。 ,功能的設(shè)置有待進(jìn)一步豐富,功能的實(shí)現(xiàn)還有 待完善和改進(jìn)。 ,進(jìn)行一定的加密措施,使之更加安 全可靠。如果要使本系統(tǒng)成為一個(gè)實(shí)際應(yīng)用系統(tǒng)并在網(wǎng)絡(luò)上實(shí)際應(yīng)用,除了完成客戶端的功能外,我 認(rèn)為還應(yīng)做以下的完善和開發(fā)工作: ,使能夠更好的處理數(shù)據(jù)的發(fā)送和接受??蛻舳耸墙o用戶使用的,從方便和美觀上,還都還有很多需要完善的地方。 本課題 主要是對(duì)本軟件服務(wù)器端的設(shè)計(jì)作了比較詳細(xì)的介紹,并對(duì)服務(wù)器端進(jìn)行了初步的開發(fā)。 C/S 程序的設(shè)計(jì)原理和過(guò)程 。 本科生畢業(yè)設(shè)計(jì)(論文) 31 結(jié) 論 本 課題 重點(diǎn)討論 C/S 的程序的設(shè)計(jì)方法和過(guò)程,對(duì)整個(gè)系統(tǒng)進(jìn)行了詳細(xì)設(shè)計(jì),利用面向?qū)ο蟮姆椒ǎM(jìn)行整個(gè)系統(tǒng)的設(shè)計(jì)。正常主界面如下圖 423所示。 如下圖 420 所示: 圖 420 服務(wù)器設(shè)置 服務(wù)器啟動(dòng)成功后,可啟動(dòng) 客戶端登陸服務(wù)器,客戶如 成功 登陸服務(wù)器,則 在客戶端 輸入 用戶帳號(hào) 和 密碼 , 如果輸入有誤 , 數(shù)據(jù)無(wú)法正確傳輸 , 系統(tǒng)提示為: 密碼不符合,是否需要登錄服務(wù)器驗(yàn)證 。 點(diǎn)擊啟動(dòng),開始啟動(dòng)服務(wù)器端。測(cè)試過(guò)程如下: 編譯程序,如果程序無(wú)邏輯錯(cuò)誤就可以編譯通過(guò)。 如下圖 419 所示: 本科生畢業(yè)設(shè)計(jì)(論文) 29 圖 419 用戶發(fā)送消息界面 系統(tǒng)測(cè)試 檢查程序是否還存在邏輯上的錯(cuò)誤,確保程序的順利運(yùn)行。 如下圖 416 所示: 本科生畢業(yè)設(shè)計(jì)(論文) 28 圖 416 系統(tǒng)參數(shù)模塊 個(gè)人設(shè)定模塊 點(diǎn)擊“個(gè)人設(shè)定”選項(xiàng),可以更改個(gè)人基本信息,包括修改密碼 等。 如下圖 413 所示: 圖 413 成 功查找在線用戶界面 發(fā)群體消息模塊 點(diǎn)擊“發(fā)群體消息”選框,出現(xiàn)一個(gè)向所有好友發(fā)送消息的對(duì)話框,用戶可以通過(guò)此對(duì)話框向所有好友發(fā)送消息。 如下圖 412 所示: 圖 412 所查找用戶的詳細(xì)資料 查看在線用戶模塊 點(diǎn)擊查看在線用戶可查看當(dāng)前在線的用戶。 如下圖 411 所示: 本科生畢業(yè)設(shè)計(jì)(論文) 26 圖 411 查找用戶備選項(xiàng) 單擊“加為好友”即可加為好友。 如下圖 49 所示: 本科生畢業(yè)設(shè)計(jì)(論文) 25 圖 49 系統(tǒng)管理下拉菜單各功能項(xiàng) 點(diǎn)擊查找用戶,會(huì)出現(xiàn)查找用戶框,輸入需要查找的用戶的 ID 號(hào)或姓名,即查找相應(yīng)的用戶。 如下圖 48 所示: 圖 48 用戶登錄界面 進(jìn)入主界面后,用戶就可以在系統(tǒng)管理功能模塊中進(jìn)行聊天、查找用戶、修改個(gè)人信息等。這五大模塊以及其所包含的各分支小模塊完成了此 聊天系統(tǒng)客戶端 的主要使用 功能。 操作正確應(yīng)得到如下圖 45 及圖 46: 本科生畢業(yè)設(shè)計(jì)(論文) 23 圖 45 聊天系統(tǒng)打開服務(wù)器界面 圖 46 聊天系 統(tǒng)打開服務(wù)器界面 本科生畢業(yè)設(shè)計(jì)(論文) 24 點(diǎn)擊“ ” ,如果您的電腦達(dá)到安裝說(shuō)明書所提示的配置,程序首界面就會(huì)彈出,輸入正確的用戶號(hào)碼和密碼,此時(shí)程序就可以正常運(yùn)行了。 正確的對(duì)軟件進(jìn)行安裝之后,即可以運(yùn)行。如圖 43 所示: 圖 43 ODBC Microsoft Access 安裝 之后出現(xiàn)“選擇數(shù)據(jù)庫(kù)”界面,選擇數(shù)據(jù)庫(kù)即完成。如下圖 41 所示: 圖 41 ODBC 數(shù)據(jù)源管理器 2.點(diǎn)擊“添加”,出現(xiàn)一個(gè)“創(chuàng)建新數(shù)據(jù)源”界面。 //實(shí)現(xiàn)文件的發(fā)送 (現(xiàn)在還沒有完成 ) DECLARE_MESSAGE_MAP() }。 //調(diào)用服務(wù)器設(shè)置的對(duì)話框 afx_msg void OnSearch()。 //調(diào)用發(fā)送廣播對(duì)話框 afx_msg void OnSendtoAll()。 //從配 置文件中讀出所有可選登陸用戶的 ID afx_msg void OnAppAbout()。 //從磁盤中讀取用戶頭像信息 BOOL LoadLocalAllUserID(CArrayint,intamp。 //保存所有用戶的信息到磁盤文件中 BOOL LoadFriendInfo()。 //退出時(shí),必要的清理工作,如果在線,則向服務(wù)器發(fā)送下線消息 void SaveCurIDToFile()。//指示 Cbitmap 對(duì)象的個(gè)數(shù) virtual BOOL InitInstance()。 //供用戶選擇頭像時(shí)的大圖標(biāo)列表(沒有灰色顯示的) CBitmapm_paBitmap。 登陸時(shí),選擇的狀態(tài)(是否隱身登陸) CImageList m_imaLarge。 服務(wù)器 IP 地址的 32 位整數(shù) DWORD m_uServerPort。當(dāng)前用戶的運(yùn)行目錄(是 ID的數(shù)字串為目錄) CString m_strServerIP。 當(dāng)前用戶的 ID 號(hào) CString m_strCurIDpwd。 當(dāng)前讀到的被別人加為好友的信息的位置(索引) CClientSocket m_Socket。 // 當(dāng)前讀到的廣播消息的位置(索引) CArraySaveMsg*,SaveMsg*m_aBeAdd。 //當(dāng)前讀到的系統(tǒng)消息的位置(索引) CArraySaveMsg*,SaveMsg*m_aBroadcast。 //存儲(chǔ)陌生人在線狀態(tài)及相關(guān)信息 CArraySaveMsg*,SaveMsg*m_aSysMsg。//存儲(chǔ)陌生人信息的數(shù)組 CArrayFriendState*,FriendState*m_aUserState。 //保存頭像文件的個(gè)數(shù)(從文件中讀出) 本科生畢業(yè)設(shè)計(jì)(論文) 19 CArrayUserInfo*,UserInfo*m_aUserInfo。 BOOL m_bOnlineState。 DECLARE_MESSAGE_MAP() }。 afx_msg void OnAppExit()。 //顯示在線的用戶的對(duì)話框 afx_msg void OnCloseServer()。 //啟動(dòng)服務(wù) afx_msg void OnUpdateStartServer(CCmdUI* pCmdUI)。 afx_msg void OnSetupServer()。 //本計(jì)算機(jī)的 IP 地址字符串 public: virtual BOOL InitInstance()。 //用戶 UID 字符串 CString m_strDataSPwd。 //發(fā)廣播消息的密碼 CString m_strDataSource。 //最大的用戶帳號(hào)(隨著用戶帳號(hào)的申請(qǐng)而增加) int m_nRecvMsg。 //聯(lián)接數(shù)據(jù)庫(kù)需要的字符串參數(shù) int m_nNumberOnline。 //用來(lái)存儲(chǔ)服務(wù)開啟后,在線人的信息的一個(gè)指針, CDatabase m_Database。 //發(fā)送一次數(shù)據(jù)的超時(shí)時(shí)間 BOOL m_bServerStarted。 //服務(wù)器端開設(shè)的偵聽端口數(shù)組 本科生畢業(yè)設(shè)計(jì)(論文) 18 int m_nSendNum。 CServerSocket m_Socket。 //保存配置文件 BOOL LoadMyProfileSettings()。其中,類CModifyPersonPI 的算法與其它類不大一樣,因?yàn)樗某蓡T中有一個(gè)位掩 Mask 成員,只有被選中的成員,才會(huì)打包入串。串的長(zhǎng)度,采用的是 2 個(gè)字節(jié)的 WORD 類型,已經(jīng)足夠滿足要求了。 算法描述: 定義的基類,提供了數(shù)據(jù)的一種統(tǒng)一的接口,其派生類再對(duì)其虛函 數(shù)進(jìn)行重載,實(shí)現(xiàn)相應(yīng)的功能。 客戶端通訊類的結(jié)構(gòu): CClientSocket 在線程里發(fā)送數(shù)據(jù),成功,或失敗都會(huì)向指定窗口類發(fā)送一個(gè) WM_SENDINTHREAD_RES 的消息,參數(shù) WPARAM 為發(fā)送數(shù)據(jù)的指針,參數(shù) LPARAM 為 1,則表示發(fā)送成功, 0 則表示發(fā)送失敗 客戶 /服務(wù)器 間 通訊 數(shù)據(jù)類 設(shè)計(jì) 整個(gè)系統(tǒng)的所有的發(fā)送的數(shù)據(jù),都包含在這幾個(gè)類中了,當(dāng)要發(fā)送一種數(shù)據(jù),則先確定一個(gè)數(shù)據(jù)類,然后填入相應(yīng)數(shù)據(jù),再調(diào)用函數(shù) PackToBuf 就可以把這些數(shù)據(jù),存入szBuf 的數(shù)組緩沖區(qū)中, num 指示其長(zhǎng)度, LoadFromBuf 函數(shù)則是已知在緩沖區(qū)中數(shù)據(jù),把各項(xiàng)的值,從緩沖區(qū)中提取出來(lái)。 因?yàn)樵诳蛻舳?,大部分?jǐn)?shù)據(jù),是在某個(gè)消息處理函數(shù)中執(zhí)行的,所以,適用于服務(wù)器的 SendData 發(fā)送數(shù)據(jù)函數(shù),在客戶端,若是在消息處理函數(shù) 中發(fā)送,函數(shù)返回值,將永遠(yuǎn)為 FALSE,于是就添加了一個(gè) SendDataInThread 函數(shù),把發(fā)送數(shù)據(jù)的過(guò)程放在線程里執(zhí)行,通過(guò)發(fā)消息的手段,來(lái)返回結(jié)果。我為每個(gè)發(fā)送 socket 設(shè)置一個(gè)是否忙的標(biāo)志 busy,當(dāng)需要發(fā)送數(shù)據(jù)時(shí),就選擇一個(gè)空閑的sendsocket,設(shè)置為忙,然后發(fā)送數(shù)據(jù),再設(shè)置回空閑,然后等待確認(rèn)信息的回來(lái)。 算法描述: 發(fā)送一個(gè)數(shù)據(jù),需要等待響應(yīng)信息的回來(lái),如果在規(guī)定時(shí)間內(nèi),還沒有收到確認(rèn)信息,則認(rèn)為發(fā)送數(shù)據(jù)丟失,將重試 FailReDoTime 次,如果還是沒有確認(rèn)信息發(fā)送回來(lái),則返回發(fā)送失敗,否則,返回發(fā)送成功。如果在線程里執(zhí)行,則可由其返回值確定發(fā)送成功與否。 偵聽類結(jié)構(gòu): class CRecvSocket 發(fā)送數(shù)據(jù)的 socket 類結(jié)構(gòu) : class CSendSocket : 服務(wù)器的 socket 類 : CServerSocket 這個(gè)通訊類的 SendData,當(dāng)發(fā)送數(shù)據(jù)失敗時(shí),可以重發(fā)幾次,次數(shù)可由用戶來(lái)確定 客戶端 底層通訊類設(shè)計(jì) 與客戶端上層的接口是 CClientSocket 類,它隱藏了服務(wù)器底層通訊的細(xì)節(jié)及多線程發(fā)送數(shù)據(jù)的問(wèn)題,提供給上一層一個(gè)統(tǒng)一的接口, CClientSocket 類的使用,是先建立一個(gè)它的實(shí) 例,再調(diào)用成員函數(shù) Create()傳入必要的參數(shù),發(fā)送數(shù)據(jù)時(shí),就調(diào)用其成員函數(shù) SendData,或 SendDataInThread 處理發(fā)送數(shù)據(jù),在 CRecvSocket 類的 OnReceive里處理,向父窗口發(fā)送一個(gè) WM_RECIEVE_MSG 消息,并把接受到的數(shù)據(jù)作為參數(shù)傳遞給父窗口。我為每個(gè)發(fā)送 socket 設(shè)置一個(gè)是否忙的標(biāo)志 busy,當(dāng)需要發(fā)送數(shù)據(jù)時(shí),就選擇一個(gè)空閑的sendsocket,設(shè)置為忙,然后發(fā)送數(shù)據(jù),再設(shè)置回空閑,然后等待確認(rèn)信息的回來(lái)。 CRecvSocket 和 CsendSocket 都是從 CAsyncSocket 類里繼承而來(lái),分別處理偵聽請(qǐng)求各發(fā)送數(shù)據(jù),在 CServerSocket 類里,定義了幾個(gè) CRecvSocket
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1