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

正文內(nèi)容

基于socket的聊天系統(tǒng)設(shè)計-全文預(yù)覽

2025-12-06 03:28 上一頁面

下一頁面
  

【正文】 user_table_mutex 本文件 *************************************************************/ int user_change_register(char * user_ID, char * password, int client_socket) { pthread_mutex_lock(amp。 return SUCCEED。iUSER_AMOUNT_MAX。 } /************************************************************ *函數(shù)名稱 : deactive_user *功能說明 : 用于用戶登出服務(wù)器時 ,把服務(wù)器與用戶通信的 socket 設(shè)置為NOT_LOGIN *正常返回值 : SUCCEED *函數(shù)執(zhí)行失敗 : 沒有找到服務(wù)器與用戶通信的 socket,返回值為 FAIL *參數(shù)說明 : client_socket 是服務(wù)器與用戶通信的 socket *依賴自定義數(shù)據(jù)結(jié)構(gòu) : struct user 本文件 *依賴全局變量 : user_table 本文件 * user_table_mutex 本文件 *************************************************************/ int deactive_user(int client_socket) { pthread_mutex_lock(amp。 return socket。iUSER_AMOUNT_MAX。user_table_mutex)。 } } pthread_mutex_unlock(amp。 memcpy(user_table[i].password,password,PASSWORD_SIZE)。 } } for(i=0。iUSER_AMOUNT_MAX。 } /************************************************************ *函數(shù)名稱 : user_register *正常返回值 : 注冊成功 SUCCEED,注冊失敗 FAIL *函數(shù)執(zhí)行失敗 : 注冊重復(fù)的 user_ID,注冊失敗 . * 如果 user_table 中沒有處于空閑的記錄 ,注冊失敗 . *參數(shù)說明 : client_socket 是服務(wù)器同用戶正在進行通信的 socket *依賴自定義數(shù)據(jù)結(jié)構(gòu) : struct user 本文件 *依賴全局變量 : user_table 本文件 * user_table_mutex 本文件 *************************************************************/ 《網(wǎng)絡(luò)編程》課程設(shè)計 7 int user_register(char * user_ID, char * password, int client_socket) { pthread_mutex_lock(amp。 user_list_buffer += USER_ID_SIZE + 1。 int i=0。 } 《網(wǎng)絡(luò)編程》課程設(shè)計 6 /************************************************************ *函數(shù)名稱 : get_active_user_list *正常返回值 : SUCCEED *參數(shù)說明 : 在函數(shù)返回數(shù)據(jù)放置在字符數(shù)組 user_list_buffer 中 , * 在 user_list_buffer中 ,每個用戶名稱占據(jù) USER_ID_SIZE + 1大小 . * 要求 user_list_buffer 中的數(shù)據(jù)必須初始化為全 39。 return SUCCEED。amp。 int i=0。 bzero(user_table[i].user_ID,OPTION_SIZE)。 } int i=0。 //多線程共享 user_table static user user_table[USER_AMOUNT_MAX]。 《網(wǎng)絡(luò)編程》課程設(shè)計 4 *關(guān)鍵問題 : * 客戶機和服務(wù)器之間協(xié)議制訂 * 多線程訪問同一個用戶列表的互斥問題 *************************************************************/ include include sys/ include define LENGTH_OF_LISTEN_QUEUE (20) define USER_AMOUNT_MAX (50) define NOT_LOGIN (1) define NOT_IN_USE (NOT_LOGIN 1) define USER_ID_SIZE (ID_SIZE) typedef struct user{ char user_ID[USER_ID_SIZE]。 char message[MESSAGE_SIZE +1]。 char from[ID_SIZE +1]。客戶端不需要指定打開的端口,通常臨時的、動態(tài)的分配一個 1024 以上的端口。 一個聊天系統(tǒng)的通信模塊就是 Socket 程序的設(shè)計與實現(xiàn),聊天系統(tǒng)分為服務(wù)器端和客戶端,服務(wù)器端的任務(wù)就是接受客戶端的不同請求,做出不同的響應(yīng),并處理多客戶端之間的通信。目 錄 引言 ........................................................................................................ 1 開發(fā)原理 ........................................................................................... 1 實現(xiàn)目標 ........................................................................................... 1 設(shè)計實現(xiàn) ........................................................................................... 2 頭文件 .......................................................................................... 2 服務(wù)器端 ....................................................................................... 3 客戶端 ........................................................................................ 14 程序測試 ......................................................................................... 22 設(shè)計總結(jié) ......................................................................................... 24 成員分工 ......................................................................................... 25 參考文獻 ......................................................................................... 25 《網(wǎng)絡(luò)編程》課程設(shè)計 1 《網(wǎng)絡(luò)程序設(shè)計》課程設(shè)計 基于 socket 的聊天系統(tǒng)設(shè)計 摘要: 本設(shè)計通過研究討論,設(shè)計基于 socket 編程的網(wǎng)絡(luò)聊天系統(tǒng) ,服務(wù)器端采用多線程并發(fā)服務(wù)方式 ,多客戶端能同時連接服務(wù)器,并且客戶端之間能進行通信 。應(yīng)用程序通常通過 套接字 向網(wǎng)絡(luò)發(fā)出請求或者應(yīng)答網(wǎng)絡(luò)請求。 客戶端 : 使用 Socket 對網(wǎng)絡(luò)上某一個服務(wù)器的某一個端口發(fā)出連接請求,一旦連接成功,打開會話;會話完成后,關(guān)閉 Socket。 《網(wǎng)絡(luò)編程》課程設(shè)計 2 設(shè)計實現(xiàn) 頭文件 /************************************************************ * * 基于 socket 的聊天客戶機和服務(wù)器的頭文件 *設(shè)計思路 : * 客戶機提出各種請求 ,服務(wù)器根據(jù)不同請求 ,發(fā)送不同的響應(yīng) . *關(guān)鍵問題 : * 客戶機和服務(wù)器之間協(xié)議制訂 *************************************************************/ include i/ // for sockaddr_in include sys/ // for socket include sys/ // for socket include // for printf include // for exit include // for bzero /************************************************************ *服務(wù)器端口定義 *************************************************************/ define CHAT_SERVER_PORT (6666) /************************************************************ *報文類型定義 *************************************************************/ define NO_COMMAND (100) //客戶端發(fā)送報文類型 define REGISTER (1) define LOGIN (2) define GET_USER_LIST (3) define TALK_TO (4) define EXIT (5) define CHANGE (6) define GET_MESSAGE (7) //服務(wù)器端發(fā)送報文類型 《網(wǎng)絡(luò)編程》課程設(shè)計 3 define SUCCEED (0) define FAIL (1) define TRANSFER (80) /************************************************************ *報文格式定義 *************************************************************/ define COMMAND_SIZE (sizeof(char)) define OPTION_SIZE (16) define ID_SIZE (OPTION_SIZE) define PASSWORD_SIZE (OPTION_SIZE) define MESSAGE_SIZE (1024) typedef struct chat_package { signed char type。 char to[ID_SIZE + 1]。 * 服務(wù)器端采用多線程 ,為每個連接的客戶建立一個服務(wù)線程 。 //client_socket==NOT_LOGIN,表示沒有用戶登錄 , //client_socket==NOT_IN_USE,表示沒有用戶注冊 ,
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1