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

正文內(nèi)容

文件傳輸與聊天系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)計(jì)算機(jī)畢業(yè)設(shè)計(jì)論文(編輯修改稿)

2024-12-29 16:24 本頁面
 

【文章內(nèi)容簡介】 L, int* lpSockAddrLen = NULL )。 rConnectedSocket 為當(dāng)來了一個(gè)新的連接的時(shí)候所給的一個(gè)套接字的引用,以后就可以用這個(gè)新的套接字進(jìn)行通信。 lpSockAddr 為接收到的客戶機(jī)的地址,指針類型。 lpSockAddrLen 為接收到的客戶機(jī)地址的長度的指針。 ④ 數(shù)據(jù)的發(fā)送與接收 CAsyncSocket 和 Socket API 中接收發(fā)送函數(shù)是一致的。 ⑤ 重載函數(shù) CAsyncSocket 是異步模式,因此在進(jìn)行一些處理的時(shí)候比如監(jiān)聽 (Listen)或接收 (Accept)時(shí)它不會(huì)阻塞后面的操作而是直接返回,為了能夠處理相關(guān)事件必須要重載 CAsyncSocket 的 相關(guān)函數(shù)。 在服務(wù)器端一般都會(huì)重載以下函數(shù): virtual void OnAccept(int nErrorCode)。 ////當(dāng)有接收事件發(fā)生時(shí)調(diào)用該函數(shù) virtual void OnReceive(int nErrorCode)。////當(dāng)有數(shù)據(jù)到達(dá)的時(shí)候調(diào)用該函數(shù) virtual void OnClose(int nErrorCode)。////當(dāng)客戶端關(guān)閉套接字的時(shí)候調(diào)用該函數(shù) 在客戶端一般會(huì)重載以下函數(shù): virtual void OnClose(int nErrorCode)。 ////當(dāng)有服務(wù)器關(guān)閉套接字的時(shí)候調(diào)用該函數(shù) virtual void OnConnect(int nErrorCode)。///當(dāng)連接到服務(wù)器的時(shí)候調(diào)用該函數(shù) virtual void OnReceive(int nErrorCode)。////當(dāng)接收到數(shù)據(jù)的時(shí)候調(diào)用該函數(shù) 開發(fā)環(huán)境及相關(guān)知識(shí)介紹 所有代碼將在 Windows XP SP2+ 環(huán)境下開發(fā);服務(wù)器的數(shù)據(jù)庫支持使用 Access+ODBC 處理;密碼算法使用國際上標(biāo)準(zhǔn)的 DES 算法和 MD5 單向加密算找畢業(yè)設(shè)計(jì)、項(xiàng)目源碼、編程視頻,就上碼農(nóng)網(wǎng) manong365 第 11 頁 共 45 頁 法來處理。 找畢業(yè)設(shè)計(jì)、項(xiàng)目源碼、編程視頻,就上碼農(nóng)網(wǎng) manong365 第 12 頁 共 45 頁 3 文件傳輸與聊天系統(tǒng)系統(tǒng) 分析 文件傳輸與聊天系統(tǒng)的開發(fā)概要 開發(fā)目的以及內(nèi)容要求 熟悉即時(shí)通信軟件的應(yīng)用環(huán)境及背景,熟悉即時(shí)通信軟件的常用開發(fā)技術(shù),主要是網(wǎng)絡(luò)技術(shù), SOCKET 編程技術(shù),網(wǎng)絡(luò)數(shù)據(jù)庫技術(shù),以及網(wǎng)絡(luò)安全技術(shù)。軟件開發(fā)基于 WINDOWS 平臺(tái)在 VC 上實(shí)現(xiàn);按照軟件工程的思想從需求分析著手,進(jìn)行總體設(shè)計(jì),詳細(xì)設(shè)計(jì),編碼及調(diào)試等步驟; SOCKET 可以使用 API 也可以使用已有類;通信部分軟件的設(shè)計(jì)與開發(fā)是本設(shè)計(jì)的重點(diǎn)。采用 CS 體系結(jié)構(gòu)和 P2P 方式通信的思想進(jìn)行軟件總體設(shè)計(jì);撰寫用以保證通信安全的密碼算法,設(shè)計(jì) 相關(guān)的密鑰管理方案。 該軟件開發(fā)的技術(shù)指標(biāo) 軟件功能完整,應(yīng)有即時(shí)消息通信、文件傳輸?shù)然竟δ埽苤С值目蛻舳说膫€(gè)數(shù)不少于 254 個(gè);軟件界面友好;通過服務(wù)器進(jìn)行消息中轉(zhuǎn);要求至少能應(yīng)用于局域網(wǎng)環(huán)境,最好能應(yīng)用于 INTERNET 環(huán)境。 應(yīng)用數(shù)據(jù)庫對通信用戶及通信消息、活動(dòng)日志等進(jìn)行管理;能實(shí)現(xiàn)查詢操作;對傳輸活動(dòng)及消息進(jìn)行加密管理,采用的算法應(yīng)是國際上著名的算法,算法實(shí)現(xiàn)可以利用已有的 API 函數(shù),借鑒現(xiàn)有成熟的代碼,也可以自主完成;有完整的無明顯漏洞的密鑰管理方案及實(shí)現(xiàn)。 該軟件開發(fā)的功 能描述 基本功能描述 ⑴ 用戶的注冊 通過服務(wù)器的用戶管理,提供用戶的注冊功能。用戶只有通過注冊的方式才可以與其他注冊的用戶進(jìn)行信息的交流。注冊的信息最重要的就是用戶的昵稱以及密碼,當(dāng)然還包括其他個(gè)人資料信息。用戶唯一的標(biāo)志是服務(wù)器提供的用戶號(hào)碼,當(dāng)且僅當(dāng)用戶提出注冊請求的時(shí)候,服務(wù)器才根據(jù)數(shù)據(jù)庫中的信息提供新的用戶一個(gè)用戶號(hào)碼,用戶通過號(hào)碼和個(gè)人密碼進(jìn)行后續(xù)的登陸操作。 ⑵ 用戶的登陸 通過服務(wù)器的用戶管理,提供用戶的登陸功能。用戶只有通過登陸的方式才可以進(jìn)入主界面獲取其好友列表,然后才可以進(jìn)行信息的交 流和其他操作。用戶的登陸操作會(huì)在服務(wù)器進(jìn)行相關(guān)的記錄,服務(wù)器可以隨時(shí)查詢在線用戶的信息。用戶的找畢業(yè)設(shè)計(jì)、項(xiàng)目源碼、編程視頻,就上碼農(nóng)網(wǎng) manong365 第 13 頁 共 45 頁 登陸應(yīng)該是安全的,號(hào)碼和密碼信息都傳輸?shù)椒?wù)器的過程中會(huì)經(jīng)過動(dòng)態(tài)加密,即時(shí)是同一個(gè)用戶在同一地點(diǎn)進(jìn)行多次登陸的時(shí)候,在網(wǎng)絡(luò)傳輸?shù)牡顷懴嚓P(guān)信息也不是相同的,這才可以保證登陸的最大化安全。 ⑶ 添加好友功能 用戶在注冊并成功登陸后可以獲取其好友列表,最初的時(shí)候每個(gè)用戶都是沒有任何好友的,因此本設(shè)計(jì)需要提供可以添加好友的功能以便讓用戶有信息溝通的對象。不但可以添加在線的好友對于不在線的好友也可以發(fā)出添加好友的請求,服務(wù)器 應(yīng)該根據(jù)不同的用戶的狀態(tài)進(jìn)行不同處理,當(dāng)用戶不在線的時(shí)候,應(yīng)該將添加好友的請求信息保存在服務(wù)器的數(shù)據(jù)庫中,以便當(dāng)被添加者上線的時(shí)候?qū)⒃撎砑诱埱蟀l(fā)送出去。服務(wù)器對于添加好友的請求需要將相關(guān)信息進(jìn)行數(shù)據(jù)庫的操作。添加好友是個(gè)雙向過程,當(dāng)一方添加成功了另一方的時(shí)候,兩者都需要在自己的好友列表中添加一個(gè)好友信息。 ⑷ 刪除好友功能 用戶不僅可以添加好友也可以刪除好友。當(dāng)用戶向服務(wù)器提出刪除好友的請求后,服務(wù)器需要進(jìn)行數(shù)據(jù)庫的處理以便刪除好友的記錄在用戶的信息里面得到更新,同時(shí)也需要通知被刪除者被刪除的過程。刪除好友 的操作也是一個(gè)雙向的過程,在客戶的雙方都要將對方在自己的好友列表中刪除掉。這和添加好友是一致的。 ⑸ 消息傳送功能 這是一個(gè)最基本的功能,即時(shí)通信最基礎(chǔ)的要求就是要進(jìn)行通訊信息的傳送。具體表現(xiàn)為當(dāng)一方客戶需要向另一發(fā)客戶發(fā)送消息的時(shí)候,只需要在好友列表中選擇該好友,繼而在彈出的對話框中輸入通信內(nèi)容,點(diǎn)擊發(fā)送按鈕后該消息將通過服務(wù)器的中轉(zhuǎn)轉(zhuǎn)發(fā)到接收方的客戶端并彈出消息聊天對話框進(jìn)行顯示。這里傳送消息有兩種情況,其一是對方是在線用戶,那么服務(wù)器馬上可以進(jìn)行轉(zhuǎn)發(fā)而不用有任何的延遲;其二是對不在線的用戶,如果對方不 在線那么服務(wù)器需要將傳送的信息保存在數(shù)據(jù)庫中,一旦對方上線的時(shí)候再將未轉(zhuǎn)發(fā)的信息發(fā)給該上線者。 ⑹ 文件傳輸功能 這個(gè)也是基本功能之一。登陸成功后的雙方用戶為了某種要求需要進(jìn)行文件的傳輸,顯然文件傳輸應(yīng)該是點(diǎn)對點(diǎn)的并且使用 TCP 連接才能保證文件傳輸?shù)目煽啃浴R环接脩?A 點(diǎn)擊文件傳輸?shù)倪x項(xiàng)繼而選擇要傳輸?shù)奈募?,此時(shí)在該用戶實(shí)際已經(jīng)建立起一個(gè) TCP 監(jiān)聽套接字,在另一方的客戶 B 將接收到對于文件傳輸?shù)慕邮照埱?,同意或者拒絕接收文件。當(dāng)客戶 B 選擇接收的時(shí)候即將調(diào)用 connect 函數(shù)遠(yuǎn)程連接到客戶 A,然后進(jìn)行文件的傳輸 。文件的傳輸是分段處理的因?yàn)閷τ诖笳耶厴I(yè)設(shè)計(jì)、項(xiàng)目源碼、編程視頻,就上碼農(nóng)網(wǎng) manong365 第 14 頁 共 45 頁 文件來說一定要進(jìn)行分段分割的傳輸。 ⑺ 查找用戶功能 本設(shè)計(jì)需要提供用戶的查詢功能。某用戶可以查詢到當(dāng)前在線的用戶以及指定信息的用戶。這里的指定信息主要是指用戶號(hào)碼,通過用戶的號(hào)碼來查詢用戶的個(gè)人信息。當(dāng)然還可以通過昵稱、國家、地區(qū)、年齡、性別等信息進(jìn)行模糊查詢。 ⑻ 個(gè)人信息修改 本設(shè)計(jì)提供個(gè)人信息的修改功能。當(dāng)個(gè)人用戶需要修改自己的某個(gè)資料時(shí),比如自己的密碼,自己的昵稱等,用戶將修改好的信息傳送給服務(wù)器,服務(wù)器根據(jù)相關(guān)信息進(jìn)行數(shù)據(jù)庫的修改將該用戶的資料更新。 ⑼ 查看好 友信息 本設(shè)計(jì)提供查看好友信息的功能。對于某個(gè)好友,客戶端向服務(wù)器發(fā)送查看該好友信息的請求,服務(wù)器操作數(shù)據(jù)庫提取相關(guān)信息然后傳送給客戶端??蛻舳私邮盏胶糜研畔⒑筮M(jìn)行顯示。 ⑽ 服務(wù)器的日志記錄功能 對于每個(gè)客戶的活動(dòng),比如注冊,登陸,上線時(shí)間等服務(wù)器都會(huì)進(jìn)行日志的記錄,以便于服務(wù)器的管理。 ⑾ 服務(wù)器的后臺(tái)管理 服務(wù)器的后臺(tái)管理表示服務(wù)器通過查詢數(shù)據(jù)庫可以了解所有用戶的信息,可以統(tǒng)計(jì)在線的人數(shù),可以群體發(fā)布一些系統(tǒng)的公告。 ⑿ 服務(wù)器網(wǎng)絡(luò)處理 該功能是整個(gè)文件傳輸與聊天系統(tǒng)的核心。服務(wù)器應(yīng)該可以協(xié)調(diào)多用戶的 請求服務(wù),當(dāng)用戶的請求消息來臨時(shí)能夠通過開辟線程的方式來進(jìn)行并行處理,服務(wù)器對客戶的應(yīng)答應(yīng)該時(shí)快速的,對用戶來說不應(yīng)該感覺到有延遲。 附加功能描述 ⑴ 用戶狀態(tài)改變功能 用戶可以改變自己的狀態(tài),比如在線,隱身,忙碌,離線等。用戶狀態(tài)的改變先通知服務(wù)器,服務(wù)器再將該用戶狀態(tài)改變的通知發(fā)送給該用戶所有在線的好友,一旦好友接收到此通知后,將進(jìn)行界面的處理,將這個(gè)用戶的狀態(tài)在自己的好友列表中修改。 ⑵ 用戶退出客戶端程序的功能 當(dāng)用戶選擇退出客戶端軟件的時(shí)候,該客戶需要通知服務(wù)器下線通知,以便服務(wù)器能了解該用戶的 狀態(tài)信息,同時(shí)進(jìn)行相關(guān)的數(shù)據(jù)庫處理。當(dāng)某用戶退出系統(tǒng)的找畢業(yè)設(shè)計(jì)、項(xiàng)目源碼、編程視頻,就上碼農(nóng)網(wǎng) manong365 第 15 頁 共 45 頁 時(shí)候,服務(wù)器需要通知該用戶的其他好友,使得其他好友能明白該用戶已經(jīng)下線,與用戶狀態(tài)改變的功能是一致的。 ⑶ 用戶保持在線的激活功能 該功能表示用戶和服務(wù)器在一定的時(shí)候內(nèi)需要進(jìn)行互相的激活,以便服務(wù)器能夠準(zhǔn)確的知道某個(gè)用戶還在線。該功能的提出是因?yàn)橛脩艨赡軙?huì)非法退出程序,比如非法關(guān)機(jī),死機(jī)等情況,這個(gè)時(shí)候客戶端軟件無法正常的告訴服務(wù)器自己的退出請求。服務(wù)器將定時(shí)給在線用戶發(fā)送激活消息,在一定時(shí)間內(nèi)用戶若沒有應(yīng)答,即做出該用戶已經(jīng)下線的判斷,并做出相關(guān)的處理 。 系統(tǒng)用例圖: 圖 系統(tǒng)用例圖 文件傳輸與聊天系統(tǒng)的應(yīng)用層協(xié)議設(shè)計(jì)以及相關(guān)數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù)包格式定義 為了讓通信雙方遵守一定的規(guī)則,必須要定義通信數(shù)據(jù)包的格式,如圖 32 所示為本設(shè)計(jì)定義的數(shù)據(jù)包結(jié)構(gòu)。 找畢業(yè)設(shè)計(jì)、項(xiàng)目源碼、編程視頻,就上碼農(nóng)網(wǎng) manong365 第 16 頁 共 45 頁 版本號(hào) 功能號(hào) 數(shù)據(jù)內(nèi)容 加密后的長度 未加密前的原始數(shù)據(jù)內(nèi)容長度 要傳輸?shù)臄?shù)據(jù)內(nèi)容 4 個(gè)字節(jié) 4 個(gè)字節(jié) 4 個(gè)字節(jié) 4 個(gè)字節(jié) 長度由前面的字段決定 圖 數(shù)據(jù)包結(jié)構(gòu) 前面的 4 個(gè)字段構(gòu)成了數(shù)據(jù)包頭部,后面的為數(shù)據(jù)內(nèi)容。換而言之,本設(shè)計(jì)的每個(gè)數(shù)據(jù)包都由數(shù)據(jù)包頭部和數(shù) 據(jù)內(nèi)容組成: 數(shù)據(jù)包=數(shù)據(jù)頭部 +數(shù)據(jù)內(nèi)容 其中: ① 版本號(hào) 版本號(hào)為該數(shù)據(jù)包的版本系統(tǒng)號(hào),這樣的設(shè)計(jì)是便于以后系統(tǒng)的擴(kuò)展;另一方面也可以判斷該數(shù)據(jù)包是不是合法的數(shù)據(jù)包,當(dāng)服務(wù)器或者是客戶端接收到的數(shù)據(jù)不是以指定的版本號(hào)開頭說明該數(shù)據(jù)包是不是本系統(tǒng)要求的,那么可以一開始就剔除掉,以免后面錯(cuò)誤的發(fā)生。版本號(hào)的長度為 4 個(gè)字節(jié)。 ② 功能號(hào) 功能號(hào)用于指定該數(shù)據(jù)包的用途。每個(gè)數(shù)據(jù)包都具有特定的功能作用,服務(wù)器或者是客戶端對于接收到數(shù)據(jù)包就是根據(jù)不同的功能號(hào)才進(jìn)行不同處理。也只有通過功能號(hào)才可以區(qū)分不同的數(shù)據(jù)包。功 能號(hào)的長度為 4 個(gè)字節(jié)。 ③ 數(shù)據(jù)內(nèi)容加密后的長度 因?yàn)楸驹O(shè)計(jì)的加密系統(tǒng)只是對數(shù)據(jù)內(nèi)容進(jìn)行加密,數(shù)據(jù)包頭部是不會(huì)被加密的。該字段指明了原始的數(shù)據(jù)內(nèi)容進(jìn)行加密后的長度,因?yàn)榧用芟到y(tǒng)對數(shù)據(jù)加密后的密文長度可能是改變了的。本字段長度為 4 個(gè)字節(jié)。 ④ 未加密前的原始數(shù)據(jù)內(nèi)容長度 本字段 4 個(gè)字節(jié),記錄數(shù)據(jù)內(nèi)容在未加密之前的長度,和③字段配合只用足可以讓加密后的數(shù)據(jù)內(nèi)容解密還原。 ⑤ 要傳輸?shù)臄?shù)據(jù)內(nèi)容 該字段的內(nèi)容在傳輸前經(jīng)過了加密,這里討論未加密前的數(shù)據(jù)內(nèi)容格式。不同功能號(hào)對應(yīng)的數(shù)據(jù)內(nèi)容也是不一樣的。根據(jù)功能號(hào)定義了不 同數(shù)據(jù)內(nèi)容的格式,數(shù)據(jù)內(nèi)容的定義和功能號(hào)是一一對應(yīng)的,比如若是功能號(hào)為 a 的數(shù)據(jù)包,那么它的數(shù)據(jù)內(nèi)容的結(jié)構(gòu)定義為 struct content_a,依次類推。 下面介紹所有的數(shù)據(jù)內(nèi)容格式,里面出現(xiàn)的數(shù)據(jù)類型在附錄中均有定義。 (1) 功能號(hào) 0 功能描述:客戶端與服務(wù)器之間的激活消息,客戶端在登陸成功后就發(fā)送該消息;找畢業(yè)設(shè)計(jì)、項(xiàng)目源碼、編程視頻,就上碼農(nóng)網(wǎng) manong365 第 17 頁 共 45 頁 服務(wù)器每隔一定的時(shí)間就發(fā)送該消息給所有在線的用戶。 宏定義: define OP_ACTIVE 0 數(shù)據(jù)內(nèi)容定義: struct content_0 { char userNum[MAX_USERNUM]。 }。 數(shù)據(jù)內(nèi)容描述:若該消息由服務(wù)器接收,那么 userNum 表示發(fā)送者的號(hào)碼;若該消息由發(fā)送,那么 userNum 表示接受者的號(hào)碼。 (2) 功能號(hào) 1 功能描述:客戶請求注冊,發(fā)送該消息給服務(wù)器。 宏定義: define OP_REG_REQ 1 數(shù)據(jù)內(nèi)容定義: struct content_1 { MYINFO myself。 }。 數(shù)據(jù)內(nèi)容描述: myself 為 MYINFO 的結(jié)構(gòu)體類型,里面填充了在注冊時(shí)需要的各種資料信息。 (3) 功能號(hào) 2 功能描述:服務(wù)器對客戶端注冊應(yīng)答。 宏定義: define OP_REG_RESPONSE 2 數(shù)據(jù)內(nèi)容定義: struct content_2 { bool OK。 char userNum[MAX_USERNUM]。 int errCode。 }。 數(shù)據(jù)內(nèi)容描述: OK
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1