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

正文內(nèi)容

畢業(yè)設(shè)計-linux下的類qq軟件開發(fā)(已改無錯字)

2023-01-13 19:31:34 本頁面
  

【正文】 給指定的用戶。 處理申請信息模塊:通過用戶申請模塊進行新用戶的注冊,保存該用戶信息。 發(fā)布系統(tǒng)消息模塊:將用戶上下線的消息發(fā)給各客戶端,并改寫用戶在服務(wù)器端和客戶端的狀態(tài)。 服務(wù)器功能示意圖: 14 服 務(wù) 器 端處 理 申 請 信 息發(fā) 布 系 統(tǒng) 消 息處 理 登 陸 信 息轉(zhuǎn) 發(fā) 聊 天 信 息 圖 31 服務(wù)器功能模型 客戶端功能模塊劃分 客戶端主要負責處理用戶的操作信息,當用戶做出相應(yīng)的動作時客戶端應(yīng)該能夠及時地做出相應(yīng),當 QT 圖形程序檢 測到鼠標點擊時,將觸發(fā)一個事件,對該事件進行動作的定義和函數(shù)的編寫便可完成相應(yīng)的動作。因此,針對這些操作特性,將客戶端模塊進行如下劃分: 登陸功能模塊:建立與服務(wù)器的連接并登陸,能顯示登陸錯誤信息。 界面顯示模塊:將在線好友顯示在好友列表中,并顯示其當前狀態(tài)。 聊天功能模塊:處理各種聊天信息,并判斷消息類型。 離線消息模塊:接收和發(fā)送離線消息,對離線消息進行處理。 配置信息模塊:提供基本的軟件配置操作。 客戶端功能示意圖: 15 客 戶 端登 錄 到 服 務(wù) 器配 置 信 息 模 塊離 線 消 息 模 塊聊 天 功 能 模 塊界 面 顯 示 模 塊 圖 32 客戶 端功能模型 消息標識的定義 define GIF_LOGIN_MSG 1 用戶登錄 define GIF_CALL_MSG 2 用戶呼叫 define GIF_ADDRLIST_MSG 3 更新聯(lián)系人列表信息 define GIF_ADD_CONTACTS_MSG 4 添加連接信息 define GIF_DELETE_CONTACTS_MSG 5 刪除連接信息 define GIF_CHAT_MSG 6 聊天信息 define GIF_DISCONNECT_MSG 7 用戶下 線消息 define GIF_SUCCESS_N_ERROR_MSG 8 消息請求成功或失敗信息 用戶發(fā)送消息成功或失敗定義: define GIF_ERROR_LOGIN_INCORRECT 101 錯誤的登陸信息 define GIF_SUCCESS_ADD_CONTACTS 102 添加連接信息成功 define GIF_ERROR_ADD_CONTACTS 103 添加連接信息錯誤 define GIF_SUCCESS_DELETE_CONTACTS 104 刪除連接信息成功 16 define GIF_ERROR_DELETE_CONTACTS_NOT_A_CONTACT 105 用戶離線 define GIF_ERROR_DELETE_CONTACTS_NOT_A_MEMBER 106 無指定用戶 消息結(jié)構(gòu)體的 設(shè) 計 消息頭: typedef struct _gifhdr_t { unsigned int type。 unsigned int length。 char sender[10]。 char receiver[10]。 unsigned int reserved。 }gifhdr_t。 用戶信息結(jié)構(gòu): typedef struct _users_t { char loginid[20]。 char password[20]。 }users_t。 在線用戶信息結(jié)構(gòu): 17 typedef struct _online_users_t { char loginid[20]。 int sockfd。 }online_users_t。 用戶聯(lián)系人信息結(jié)構(gòu): typedef struct _user_contacts_t { char loginid[20]。 }user_contacts_t。 用戶當前狀態(tài): typedef struct _user_status_t { char loginid[20]。 unsigned int status。 }user_status_t。 離線消息存儲時離線消息結(jié)構(gòu): typedef struct _offline_msgs_t { char sender[20]。 char dateserial[20]。 unsigned int new。 18 char message[1024]。 }offline_msgs_t。 用戶發(fā)送離線消息結(jié)構(gòu): typedef struct _offline_msgs_send_t { char sender[20]。 char dateserial[20]。 unsigned int new。 unsigned int length。 }offline_msgs_send_t。 四、軟件流程 本節(jié)主要敘述了該軟件的整體運作流程,包括服務(wù)器和客戶端對消息的處理等流程,通過本節(jié)將能夠?qū)浖墓ぷ髁鞒痰玫揭粋€總體的 認識。 (一)服務(wù)器消息處理流程 服務(wù)器運行后即處于監(jiān)聽狀態(tài),當監(jiān)聽到有連接請求時服務(wù)器進入消息處理流程,因為服務(wù)器為并發(fā)服務(wù)器,所以可以同時對多個請求做出相應(yīng)。具體流程 如下圖 41 所示。 19 (二)客戶端操作流程 這款聊天軟件的客戶端采用圖形化用戶接口方式, 根據(jù) QT 圖形界面的主要特點 , 按照事先編寫好的函數(shù)作相應(yīng)的處理動作 , 圖 42總體上描述了客戶端軟件的操作處理流程: (三)客戶端消息發(fā)送和接收流程 客戶端運行后首先要用戶登錄到服務(wù)器,如果登陸成功服務(wù)器會將在線的用戶聯(lián)系人列表發(fā)送給客戶端,此時客戶端 即可顯示有哪些好友在線而哪些是離線的。當用戶點擊在線好友時便會彈出一個聊天信息窗體,該窗體用于發(fā)送和接收用戶的聊天信息。當用戶點擊離線用戶時便會觸發(fā)一個離線消息事件,該事件通過服務(wù)器轉(zhuǎn)發(fā) 方式發(fā)送給離線用戶,當對方上線時便可查看該離線消息。具體流程如 圖 43所示: 20 創(chuàng) 建 套 接 字S o c k e t ( )綁 定 地 址B i n d ( )監(jiān) 聽 連 接L i s t e n ( )接 受 連 接A c c e p t ( )創(chuàng) 建 線 程P a t h r e a d _ c r e at e ( )連 接 是否 成 功是否發(fā) 送 錯 誤 信息 并 關(guān) 閉 連接 套 接 字失 敗處 理 連 接 信息 R e c v ( )信 息 判 斷錯 誤根 據(jù) 信 息 標 示選 擇 處 理 語 句S w i t c h ( )聊 天 信 息刪 除 連接 信 息添 加 連接 信 息處 理 用戶 登 陸用 戶 下線 消 息發(fā) 送 離 線消 息 請 求發(fā) 送 離線 消 息 循 環(huán) 體 while( 1) 循環(huán)體while(1) 圖 41服務(wù)器流程圖 21 登 陸 程 序 主 窗 口 聊 天 離 線 消 息 添 加 刪 除 好 友添 加 用 戶 信 息請 求 登 陸是 否 登陸 成 功等 待 事 件 觸 發(fā)彈 出 聊 天 窗 口彈 出 聊 天 窗 口彈 出 添 加刪 除 窗 口根 據(jù) 判 斷 選擇 要 觸 發(fā) 的事 件關(guān) 閉 窗 口 關(guān) 閉 窗 口 關(guān) 閉 窗 口圖 42客戶端流程圖 創(chuàng) 建 套 接 字S o c k e t ( )從 主 窗 體 點 鏈 接填 寫 服 務(wù) 器 和 用戶 信 息發(fā) 送 鏈 接 請 求C o n n e c t ( )是 否 鏈 接 成 功發(fā) 送 用 戶 信 息S e n d ( )是否創(chuàng) 建 線 程P t h r e a d_ c r e a t e ( )失 敗處 理 連 接 信 息信 息 判 斷成 功失 敗根 據(jù) 信 息 標 識選 擇 處 理 語 句成 功更 新 用 戶 套接 字 列 表聊 天 信 息消 息 請 求 成 功或 失 敗 信 息離 線 信 息C a s e : 3C a s e : 1 0C a s e : 6C a s e : 8B r e a k圖 43客戶端消息處理流程 22 (四)申請用戶流程 管理員在服務(wù)器一端統(tǒng)一注冊用戶,然后將賬號分發(fā)給各用戶,申請用戶為單獨程序完成,當新用戶注冊好后系統(tǒng)會創(chuàng)建 3 個用戶信息表用來保存相應(yīng)的客戶信息。具體流程如圖 44 所示: 運 行 用 戶 管 理 程 序添加用戶顯示用戶刪除用戶退出程序 圖 43管理用戶流程圖 五、詳細設(shè)計 該部分詳細講述了服務(wù)器和客戶端的界面和代碼,直觀地對 該軟件進行設(shè)計說明,通過該部分將對軟件有一個全面的了解。 (一)服務(wù)器主要函數(shù)和變量 套接字描述字: int sockfd, client_sockfd 套接字地址結(jié)構(gòu): struct sockaddr_in servAddr, cliAddr 線程 id 標識: pthread_t pthd 線程調(diào)用函數(shù): void gif_handle_client(int client_sockfd) 服務(wù)器主體函數(shù)只負責了套接字的創(chuàng)建、幫定和監(jiān)聽任務(wù),一旦服務(wù)器接收到了來自客戶端的消息后,就會創(chuàng)建一個線程來處理 該連 23 接,當線程創(chuàng)建后它就會調(diào)用該函數(shù)對客戶消息進行處理。 該函數(shù)中有 7 個主要消息處理模塊,這些模塊針對不同的客戶消息進行處理,將他們組合在一起便形成了一套完整的消息處理機制。在 上一章 中我們敘述了服務(wù)器的消息處理流程,而最后的消息處理部分就是由這 7 個模塊來完成的。 發(fā)送聯(lián)系人狀態(tài)函數(shù): Void gif_send_clients_contact_list(chat *client_loginid,int client_sockfd, int type) 該函數(shù)的主要作用是當用戶的在線狀態(tài)標 志發(fā)生變動 時, 服務(wù)器要及時地做出判斷,并向該用戶的聯(lián)系人發(fā)送該用戶狀態(tài)變更后的信 息,以便對方能夠及時地了解到聯(lián)系人的狀態(tài)信息。 獲取系統(tǒng)時間函數(shù): char *gif_get_system_time() 該函數(shù)取出當前系統(tǒng)時間并隨消息一同發(fā)出,以便讓用戶能更好的了解到消息是何時發(fā)出的。 (二)服務(wù)器消息處理模塊的設(shè)計與實現(xiàn) 服務(wù)器的消息處理模塊主要由 7 部分組成,下面進行分別論述: 用戶登錄消息處理模塊: 當服務(wù)器接收到用戶消息并判斷是登錄消息后,服務(wù)器將根據(jù)用戶所發(fā)送過來的用戶名和密碼到 表中進行匹配,如果匹配成功則把該用戶加入到 表中,設(shè)置用戶在線狀態(tài)為真的同時調(diào)用發(fā)送聯(lián)系人在線列表函數(shù),向添加該用戶為好友的用戶發(fā)送該 24 用戶的上線信息。如果匹配不成功,服務(wù)器將發(fā)送登錄失敗消息給客戶端,要求用戶重新登錄。 添加好友信息處理模塊: 當服務(wù)器收到用戶請求加好友的消息時,服務(wù)器首先在 中查找要被添加的用戶是否存在,如果該用戶存在則把該用戶的信息存儲到當前用戶的好友文件中,同時在被添加好友的用戶的 表中保存當前用戶的信息。 刪 除好友信息處理模塊: 當服務(wù)器接收到用戶的該消息
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1