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-01 16:24本頁面
  

【正文】 sendTime。 USERADDR fromAddr。 宏定義: OP_SEND_RESPONSE 數(shù)據(jù)內(nèi)容格式: struct content_6 { char fromNum[MAX_USERNUM]。 數(shù)據(jù)內(nèi)容描述: Online 表示對(duì)方是否在線; friendNum 為對(duì)方好友的號(hào)碼; friendAddr為對(duì)方好友的 UDP 地址 (IP 地址和端口號(hào) ); myNum 為自己的號(hào)碼; msgContent 為找畢業(yè)設(shè)計(jì)、項(xiàng)目源碼、編程視頻,就上碼農(nóng)網(wǎng) manong365 第 19 頁 共 45 頁 傳輸?shù)南?nèi)容; sendTime 為消息發(fā)送時(shí)間。 CTime sendTime。 char myNum[MAX_USERNUM]。 char friendNum[MAX_USERNUM]。 (6) 功能號(hào) 5 功能描述:客戶端請(qǐng)求服務(wù)器給一個(gè)好友發(fā)送一條消息。 數(shù)據(jù)內(nèi)容描述: OK 表示登陸是否成功。 (5) 功能號(hào) 4 功能描述:服務(wù)器對(duì)客戶登陸請(qǐng)求的應(yīng)答 宏定義: define OP_LOGIN_RESPONSE 4 數(shù)據(jù)內(nèi)容格式: struct content_4 { bool OK。這點(diǎn)很復(fù)雜,為了保證登陸的安全性,登陸的過程是動(dòng)態(tài)處理的,同一個(gè)用戶每次登陸的 authInfo 信息都不是相同的,即便密碼并沒有改變。 }。 宏定義: define OP_LOGIN_REQ 3 找畢業(yè)設(shè)計(jì)、項(xiàng)目源碼、編程視頻,就上碼農(nóng)網(wǎng) manong365 第 18 頁 共 45 頁 數(shù)據(jù)內(nèi)容格式: struct content_3 { char userNum[MAX_USERNUM]。若 OK 為 true 表示注冊(cè)成功且 userNum 里面存放的是該用戶的新號(hào)碼;若 OK 為 false 表示注冊(cè)失敗, errCode 里面存放的是錯(cuò)誤代碼。 }。 char userNum[MAX_USERNUM]。 (3) 功能號(hào) 2 功能描述:服務(wù)器對(duì)客戶端注冊(cè)應(yīng)答。 }。 (2) 功能號(hào) 1 功能描述:客戶請(qǐng)求注冊(cè),發(fā)送該消息給服務(wù)器。 }。 (1) 功能號(hào) 0 功能描述:客戶端與服務(wù)器之間的激活消息,客戶端在登陸成功后就發(fā)送該消息;找畢業(yè)設(shè)計(jì)、項(xiàng)目源碼、編程視頻,就上碼農(nóng)網(wǎng) manong365 第 17 頁 共 45 頁 服務(wù)器每隔一定的時(shí)間就發(fā)送該消息給所有在線的用戶。根據(jù)功能號(hào)定義了不 同數(shù)據(jù)內(nèi)容的格式,數(shù)據(jù)內(nèi)容的定義和功能號(hào)是一一對(duì)應(yīng)的,比如若是功能號(hào)為 a 的數(shù)據(jù)包,那么它的數(shù)據(jù)內(nèi)容的結(jié)構(gòu)定義為 struct content_a,依次類推。 ⑤ 要傳輸?shù)臄?shù)據(jù)內(nèi)容 該字段的內(nèi)容在傳輸前經(jīng)過了加密,這里討論未加密前的數(shù)據(jù)內(nèi)容格式。本字段長(zhǎng)度為 4 個(gè)字節(jié)。 ③ 數(shù)據(jù)內(nèi)容加密后的長(zhǎng)度 因?yàn)楸驹O(shè)計(jì)的加密系統(tǒng)只是對(duì)數(shù)據(jù)內(nèi)容進(jìn)行加密,數(shù)據(jù)包頭部是不會(huì)被加密的。也只有通過功能號(hào)才可以區(qū)分不同的數(shù)據(jù)包。 ② 功能號(hào) 功能號(hào)用于指定該數(shù)據(jù)包的用途。換而言之,本設(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ā)生。 系統(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àn)橛脩艨赡軙?huì)非法退出程序,比如非法關(guān)機(jī),死機(jī)等情況,這個(gè)時(shí)候客戶端軟件無法正常的告訴服務(wù)器自己的退出請(qǐng)求。當(dāng)某用戶退出系統(tǒng)的找畢業(yè)設(shè)計(jì)、項(xiàng)目源碼、編程視頻,就上碼農(nóng)網(wǎng) manong365 第 15 頁 共 45 頁 時(shí)候,服務(wù)器需要通知該用戶的其他好友,使得其他好友能明白該用戶已經(jīng)下線,與用戶狀態(tài)改變的功能是一致的。用戶狀態(tài)的改變先通知服務(wù)器,服務(wù)器再將該用戶狀態(tài)改變的通知發(fā)送給該用戶所有在線的好友,一旦好友接收到此通知后,將進(jìn)行界面的處理,將這個(gè)用戶的狀態(tài)在自己的好友列表中修改。服務(wù)器應(yīng)該可以協(xié)調(diào)多用戶的 請(qǐng)求服務(wù),當(dāng)用戶的請(qǐng)求消息來臨時(shí)能夠通過開辟線程的方式來進(jìn)行并行處理,服務(wù)器對(duì)客戶的應(yīng)答應(yīng)該時(shí)快速的,對(duì)用戶來說不應(yīng)該感覺到有延遲。 ⑾ 服務(wù)器的后臺(tái)管理 服務(wù)器的后臺(tái)管理表示服務(wù)器通過查詢數(shù)據(jù)庫可以了解所有用戶的信息,可以統(tǒng)計(jì)在線的人數(shù),可以群體發(fā)布一些系統(tǒng)的公告??蛻舳私邮盏胶糜研畔⒑筮M(jìn)行顯示。 ⑼ 查看好 友信息 本設(shè)計(jì)提供查看好友信息的功能。 ⑻ 個(gè)人信息修改 本設(shè)計(jì)提供個(gè)人信息的修改功能。這里的指定信息主要是指用戶號(hào)碼,通過用戶的號(hào)碼來查詢用戶的個(gè)人信息。 ⑺ 查找用戶功能 本設(shè)計(jì)需要提供用戶的查詢功能。當(dāng)客戶 B 選擇接收的時(shí)候即將調(diào)用 connect 函數(shù)遠(yuǎn)程連接到客戶 A,然后進(jìn)行文件的傳輸 。登陸成功后的雙方用戶為了某種要求需要進(jìn)行文件的傳輸,顯然文件傳輸應(yīng)該是點(diǎn)對(duì)點(diǎn)的并且使用 TCP 連接才能保證文件傳輸?shù)目煽啃?。這里傳送消息有兩種情況,其一是對(duì)方是在線用戶,那么服務(wù)器馬上可以進(jìn)行轉(zhuǎn)發(fā)而不用有任何的延遲;其二是對(duì)不在線的用戶,如果對(duì)方不 在線那么服務(wù)器需要將傳送的信息保存在數(shù)據(jù)庫中,一旦對(duì)方上線的時(shí)候再將未轉(zhuǎn)發(fā)的信息發(fā)給該上線者。 ⑸ 消息傳送功能 這是一個(gè)最基本的功能,即時(shí)通信最基礎(chǔ)的要求就是要進(jìn)行通訊信息的傳送。刪除好友 的操作也是一個(gè)雙向的過程,在客戶的雙方都要將對(duì)方在自己的好友列表中刪除掉。 ⑷ 刪除好友功能 用戶不僅可以添加好友也可以刪除好友。服務(wù)器對(duì)于添加好友的請(qǐng)求需要將相關(guān)信息進(jìn)行數(shù)據(jù)庫的操作。 ⑶ 添加好友功能 用戶在注冊(cè)并成功登陸后可以獲取其好友列表,最初的時(shí)候每個(gè)用戶都是沒有任何好友的,因此本設(shè)計(jì)需要提供可以添加好友的功能以便讓用戶有信息溝通的對(duì)象。用戶的登陸操作會(huì)在服務(wù)器進(jìn)行相關(guān)的記錄,服務(wù)器可以隨時(shí)查詢?cè)诰€用戶的信息。 ⑵ 用戶的登陸 通過服務(wù)器的用戶管理,提供用戶的登陸功能。注冊(cè)的信息最重要的就是用戶的昵稱以及密碼,當(dāng)然還包括其他個(gè)人資料信息。 該軟件開發(fā)的功 能描述 基本功能描述 ⑴ 用戶的注冊(cè) 通過服務(wù)器的用戶管理,提供用戶的注冊(cè)功能。 該軟件開發(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)境。軟件開發(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)。////當(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 頁 法來處理。 ////當(dāng)有服務(wù)器關(guān)閉套接字的時(shí)候調(diào)用該函數(shù) virtual void OnConnect(int nErrorCode)。////當(dāng)有數(shù)據(jù)到達(dá)的時(shí)候調(diào)用該函數(shù) virtual void OnClose(int nErrorCode)。 在服務(wù)器端一般都會(huì)重載以下函數(shù): virtual void OnAccept(int nErrorCode)。 ④ 數(shù)據(jù)的發(fā)送與接收 CAsyncSocket 和 Socket API 中接收發(fā)送函數(shù)是一致的。 lpSockAddr 為接收到的客戶機(jī)的地址,指針類型。 rConnectedSocket, SOCKADDR* lpSockAddr = NULL, int* lpSockAddrLen = NULL )。 ③ 服務(wù)器的監(jiān)聽和接收客戶端的請(qǐng)求 找畢業(yè)設(shè)計(jì)、項(xiàng)目源碼、編程視頻,就上碼農(nóng)網(wǎng) manong365 第 10 頁 共 45 頁 Listen 函數(shù)原型: BOOL Listen( int nConnectionBacklog = 5 )。 lpSockAddr 為套 接字地址指針。 lpszHostAddress 為套接字的主機(jī)網(wǎng)絡(luò)地址,為 IP 地址或者機(jī)器名稱。 Connect 函數(shù)原型如下: BOOL Connect( LPCTSTR lpszHostAddress, UINT nHostPort, }。如果成功則返回 TRUE,否則返回 FALSE。默認(rèn)所有事件都會(huì)生成通知 lpszSocketAddress 是套接字的網(wǎng)絡(luò)地址,默認(rèn)表示指定為本機(jī)地址。默認(rèn)是流套接字 (SOCK_STRAEM).如果設(shè)為SOCK_DGRAM,那么將創(chuàng)建數(shù)據(jù)報(bào)套接字。如果是客戶機(jī)套接字,則使用默認(rèn)值即可。先通過調(diào)用 CAsyncSocket 的構(gòu)造函數(shù)不帶參數(shù),它創(chuàng)建一個(gè)空的套接字對(duì)象,真正的創(chuàng)建工作由 Create 函數(shù)完成,其函數(shù)原型如下: 找畢業(yè)設(shè)計(jì)、項(xiàng)目源碼、編程視頻,就上碼農(nóng)網(wǎng) manong365 第 9 頁 共 45 頁 BOOL Create ( UINT nSocketPort=0, Int nSocketType=SOCK_STREAM, Long lEvent= FD_READ|FD_WRITE|FD_OOB| FD_ACCEPT|FD_CONNECT|FD_CLOSE, LPCTSTR lpszSocketAddress=NULL, )。 以下為 TCP 客戶機(jī) /服務(wù)器模型 ,如圖 所示: 圖 TCP 客戶機(jī) /服務(wù)器模型 MFC 網(wǎng)絡(luò)編程類 VC 中提供的 CSocket 類以及 CAsyncSocket 類使得編寫網(wǎng)絡(luò)程序變得很簡(jiǎn)單,從創(chuàng)建套接字到數(shù)據(jù)的接收和發(fā)送都變得非??旖?,下面就主要就本設(shè)計(jì)將要用到的 CAsyncSocket 類進(jìn)行重點(diǎn)描述。 找畢業(yè)設(shè)計(jì)、項(xiàng)目源碼、編程視頻,就上碼農(nóng)網(wǎng) manong365 第 8 頁 共 45 頁 int select(int nfds, fd_set* readfds,fd_set* writefds, fd_set*exceptfds, struct timeval* timeout)。 int recvfrom(int sockfd,void *buf,int len,unsigned int flags, struct sockaddr * from, int *fromlen)。 int recv(int sockfd, void *buf,int len, int flags)。 int socket(int domain, int type, int protocol); int bind(int sockfd, struct sockaddr *hostaddr, int addrlen)。 Socket 提供了一組通用的函數(shù)組,這些函數(shù)在現(xiàn)在絕大部分操作系統(tǒng)中都提供內(nèi)核的支持,所以無論是什么編程語言,比如 C, Perl, Java, Pascal, Basic 等都可以提供這些函數(shù)的接口,使得 Socket 編程具有一定的移植性。數(shù)據(jù)通過相互獨(dú)立報(bào)文進(jìn)行傳輸,是無序的,并且不保證可靠、無差錯(cuò)。通過流式套接字接收的數(shù)據(jù)順序和發(fā)送的數(shù)據(jù)順序是一致的。套接字有 三種類型: 流式套接 字( SOCK_STREAM), 數(shù) 據(jù)報(bào)套接字(SOCK_DGRAM)及原始套接字。進(jìn)程通信之前,雙方首先必須各自創(chuàng)建一個(gè)端點(diǎn),否則沒有辦法建立聯(lián)系并相互通信的。什么是套接字?套接字的英文原意是“孔”或“插座”,作為 BSD UNIX 的進(jìn)程通信機(jī)制,取后一種意義。本次設(shè)計(jì)大量使用了 UDP 協(xié)議進(jìn)行傳輸數(shù)據(jù),并針對(duì) 它的不可靠性做些處理。只有當(dāng)建立好 TCP 連接后,雙方才可以進(jìn)行通信。 面向連接意味著兩個(gè)使用 TCP 的應(yīng)用 (通常是一個(gè)客戶和 一個(gè)服務(wù)器 )在彼此交換數(shù)據(jù)之前必須先建立一個(gè) TCP 連接。 TCP 和 UDP 協(xié)議基礎(chǔ) 盡管 TCP 和 UDP 都使用相同的網(wǎng)絡(luò)層 (IP)且都工作在傳輸層 ,TCP 卻向應(yīng)用層提供與 UDP 完全不同的服務(wù)。 TCP/IP 模型將 OSI 參考模型中的會(huì)話層和表示層的功能合并到應(yīng)用層實(shí)現(xiàn)。 在 TCP/IP 參考模型中,去掉了 OSI 參考模型中的會(huì)話層和表示層(這兩層的功能被合并到應(yīng)用層實(shí)現(xiàn))。 OSI 模型從上到下分為應(yīng)用層、表示層、會(huì)話層、傳輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層、物理層。 找畢業(yè)設(shè)計(jì)、項(xiàng)目源碼、編程視頻,就上碼農(nóng)網(wǎng) manong365 第 6 頁 共 45 頁 2 文件傳輸與聊天系統(tǒng)開發(fā)的技術(shù)基礎(chǔ) 網(wǎng)絡(luò)協(xié)議簡(jiǎn)介 TCP/IP 網(wǎng)絡(luò)層次模型 當(dāng)談到 TCP/IP 模型的時(shí)
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1