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

正文內(nèi)容

基于socket的聊天系統(tǒng)設(shè)計(jì)-資料下載頁(yè)

2024-11-10 03:28本頁(yè)面

【導(dǎo)讀】程序通過(guò)了驗(yàn)證與測(cè)試,證明了系統(tǒng)的可用性、易用性、完善。應(yīng)用程序通常通過(guò)"套接字"向網(wǎng)絡(luò)發(fā)出請(qǐng)求或者應(yīng)答網(wǎng)絡(luò)請(qǐng)。一個(gè)聊天系統(tǒng)的通信模塊就是Socket程序的設(shè)計(jì)與實(shí)現(xiàn),聊天系。求,做出不同的響應(yīng),并處理多客戶端之間的通信。服務(wù)器端采用多線程,為。接請(qǐng)求,一旦連接成功,打開(kāi)會(huì)話;會(huì)話完成后,關(guān)閉Socket。能實(shí)現(xiàn)多客戶同時(shí)在線進(jìn)行聊天的功能。*客戶機(jī)提出各種請(qǐng)求,服務(wù)器根據(jù)不同請(qǐng)求,發(fā)送不同的響應(yīng).

  

【正文】 d Option:\n)。 printf(%d:REGISTER\n,REGISTER)。 printf(%d:LOGIN\n,LOGIN)。 printf(%d:GET_USER_LIST\n,GET_USER_LIST)。 printf(%d:TALK_TO\n,TALK_TO)。 printf(%d:EXIT\n,EXIT)。 printf(%d:GET_MESSAGE\n,GET_MESSAGE)。 printf(Input Your Command Option Num: )。 scanf(%d,amp。mand_option)。 switch(mand_option) { case REGISTER: printf(Input Your User_ID:)。 scanf(%s,user_ID)。 printf(Input Your Password:)。 scanf(%s,password)。 send_request_to_server(mand_option, 0, 0, 0)。 《網(wǎng)絡(luò)編程》課程設(shè)計(jì) 20 break。 case LOGIN: printf(Input Your User_ID:)。 scanf(%s,user_ID)。 printf(Input Your Password:)。 scanf(%s,password)。 send_request_to_server(mand_option, 0, 0, 0)。 break。 case GET_USER_LIST: send_request_to_server(mand_option, USER_LIST, 0, 0)。 break。 case TALK_TO: printf(Input Receiver User_ID:)。 scanf(%s,receiver_user_ID)。 printf(Write Your Message Here:)。 scanf(%s, message_buffer)。 send_request_to_server(mand_option, 0, receiver_user_ID, message_buffer)。 break。 case EXIT: send_request_to_server(mand_option, 0, 0, 0)。 close(client_socket)。 exit(0)。 case CHANGE: printf(Input Your New User_ID:)。 scanf(%s,user_ID)。 printf(Input Your New Password:)。 scanf(%s,password)。 send_request_to_server(mand_option, 0, 0, 0)。 case GET_MESSAGE: break。 } //recieve_from_server char option[OPTION_SIZE+1]。 bzero(option,OPTION_SIZE+1)。 char message_from[ID_SIZE+1]。 bzero(option,ID_SIZE+1)。 char message[MESSAGE_SIZE+1]。 bzero(message,MESSAGE_SIZE+1)。 《網(wǎng)絡(luò)編程》課程設(shè)計(jì) 21 int response。 if(GET_MESSAGE==mand_option) response=receive_result_from_server_noblock(option, message_from, message)。 else response=receive_result_from_server(option, message_from, message)。 switch(response) { case FAIL: printf(\nRecived From Server: Failed\n)。 break。 case SUCCEED: if(strcmp(option, USER_LIST)==0) print_user_list(message)。 else printf(\nRecieved From Server: OK\n)。 break。 case TRANSFER: printf(\nMessage From %s :%s\n,message_from, message)。 break。 } } } int main(int argc, char **argv) { if (argc != 2) { printf(Usage: ./%s ServerIPAddress\n,argv[0])。 exit(1)。 } bzero(user_ID,BUFFER_SIZE)。 bzero(password,BUFFER_SIZE)。 connect_to_server(argv[1])。 talk_to_server()。 } 《網(wǎng)絡(luò)編程》課程設(shè)計(jì) 22 程序測(cè)試 圖 11 編譯服務(wù)端并運(yùn)行 圖 11 服務(wù)端編譯運(yùn)行 圖 12 編譯客戶端并運(yùn)行 圖 12 客戶端編譯運(yùn)行 程序界面功能包括: 注冊(cè); 登陸; 獲取在線用戶名單; 聊天; 退出; 獲取他人對(duì)你的聊天信息 。 圖 13 查詢?cè)诰€人數(shù) 圖 13 查詢?cè)诰€人數(shù) (左側(cè) server 端,右側(cè) client 端) 初次運(yùn)行 系統(tǒng)顯示無(wú)人在線。 圖 14 注冊(cè)一個(gè)用戶 bosn,密碼 111 《網(wǎng)絡(luò)編程》課程設(shè)計(jì) 23 圖 14 注冊(cè)用戶 bosn 圖 15 用戶 bosn 登陸 圖 15 bosn 登陸 為了實(shí)現(xiàn)聊天功能,需要兩個(gè)用戶,因此再注冊(cè)一個(gè)用戶。 圖 16 注冊(cè)用戶 linkway,密碼 222 圖 16 注冊(cè)用戶 linkway 圖 17 用戶 linkway 登陸 圖 17 linkway 登陸 圖 18 查詢現(xiàn)在在線用戶名單 圖 18 在線名單 圖 19 bosn 向 linkway 發(fā)起聊天 《網(wǎng)絡(luò)編程》課程設(shè)計(jì) 24 圖 19bosn 向 linkway 發(fā)送消息 圖 110linkway 接收 bosn 發(fā)來(lái)消息 圖 110 linkway 接收 bosn 消息 1 圖 111 linkway 向 bosn 回復(fù)信息 圖 11 linkway 對(duì) bosn 的回復(fù) 1 圖 112bosn 接收 linkway 回復(fù)信息 圖 112 bosn 接收 linkway 回復(fù) 至此,系統(tǒng)已經(jīng)正確完成了用戶 bosn 和 linkway 的注冊(cè)、登錄、 聊天功能。因此,程序的設(shè)計(jì)以及功能是正確并完整的。 設(shè)計(jì)總結(jié) 通過(guò)本次課程設(shè)計(jì),我們加深了對(duì) Linux下用 C 語(yǔ)言進(jìn)行 socket編程的認(rèn)識(shí)和了解,并且更好的掌握了對(duì) socket 原理以及結(jié)構(gòu)的認(rèn)識(shí)?,F(xiàn)在已經(jīng)能夠較好的掌握使用 socket 編程建立客戶端與服務(wù)端,并且進(jìn)行通信的方法和技能。 Socket 用于在兩個(gè)基于 TCP/IP 協(xié)議的應(yīng)用程序之間相互通信。最早出現(xiàn)在 UNIX 系統(tǒng)中,是 UNIX 系統(tǒng)主要的信息傳遞方式。在 WINDOWS 系統(tǒng)中, SOCKET 稱為 WINSOCK。 Socket 包含兩個(gè)基本的概念 —— server(服務(wù)方)和 client(客戶方)。當(dāng)兩個(gè)應(yīng)用之間需要采用 SOCKET 通信時(shí),首先需要在兩個(gè)應(yīng)用之間(可《網(wǎng)絡(luò)編程》課程設(shè)計(jì) 25 能位于同一臺(tái)機(jī)器,也可能位于不同的機(jī)器)建立 SOCKET 連接,發(fā)起呼叫連接請(qǐng)求的一方為客戶方,接受呼叫連接請(qǐng)求的一方成為服務(wù)方??蛻舴胶头?wù)方是相對(duì)的,同一個(gè)應(yīng)用可以是客戶方,也可以是服務(wù)方。 在客戶方呼叫連接請(qǐng)求之前,它必須知道服務(wù)方在哪里。所以需要知道服務(wù)方所在機(jī)器的 IP 地址或機(jī)器名稱,如果客戶方和服務(wù)方事前有一個(gè)約定就好了,這個(gè)約定就是 PORT(端口號(hào))。也就是說(shuō),客戶方可以通過(guò)服務(wù) 方所在機(jī)器的 IP地址或機(jī)器名稱和端口號(hào)唯一的確定方式來(lái)呼叫服務(wù)方。在客戶方呼叫之前,服務(wù)方必須處于偵聽(tīng)狀態(tài),偵聽(tīng)是否有客戶要求建立連接。一旦接到連接請(qǐng)求,服務(wù)方可以根據(jù)情況建立或拒絕連接。連接方式有兩種,同步方式( Blocking)和不同步方式 (noBlocking)。 客戶方發(fā)送的消息可以是文本,也可以是二進(jìn)制信息流。當(dāng)客戶方的消息到達(dá)服務(wù)方端口時(shí),會(huì)自動(dòng)觸發(fā)一個(gè)事件( event),服務(wù)方只要接管該事件,就可以接受來(lái)自客戶方的消息了。 在這次設(shè)計(jì)中,我們小組三人通力合作,不驕不躁,始終共同進(jìn)行設(shè)計(jì) ,并最終很好的實(shí)現(xiàn)了設(shè)計(jì)要求。通過(guò)合作,加強(qiáng)了我們的團(tuán)隊(duì)合作意識(shí),分享了彼此的長(zhǎng)處和經(jīng)驗(yàn),加深了友情,也為不久的將來(lái)我們進(jìn)入社會(huì)參加工作打下了基礎(chǔ),通過(guò)本次課程設(shè)計(jì),我們受益良多。 成員分工 張栢菁: 系統(tǒng)分析, 代碼編寫及處理。 胡博深:程序的編譯,測(cè)試糾錯(cuò) ,文檔整理 。 李朋偉:代碼 處理 , 論文文檔 編寫 。 參考文獻(xiàn) 【 1】 Linux 開(kāi)源社區(qū): 【 2】 甘剛 , 《 Linux/Unix 網(wǎng)絡(luò)編程》 , 中國(guó)水利水電出版社 , 2020 年 7 月第一版。 【 3】 常志文 , 《 TCP/IP 網(wǎng)絡(luò)互連第 3 卷 :客戶 /服務(wù)器編程及應(yīng)用 :Linux/POSIX Socket》 ,人民郵電出版社 , 2020 年 1 月第一版。 【 4】 (美) Stevens.《 UNIX 網(wǎng)絡(luò)編程(第一卷)》 , 楊繼張譯 , 清華大學(xué)出版社 , 2020。 【 5】 楊延雙等 , 《 TCP/IP 協(xié)議分析及應(yīng)用》 , 機(jī)械工業(yè)出版社 , 202021。 【 6】 張曦煌 /柴志雷 , 《 Linux 中 TCP\IP 協(xié)議實(shí)現(xiàn)及嵌入式應(yīng)用》 , 北京航空航天大學(xué)20200701。 【 7】 (美)多納霍 、 (美)卡爾弗特著,陳宗斌等譯 , 《 TCP/IP Sockets 編程( C 語(yǔ)言實(shí)現(xiàn))(第 2 版)》 , 清華大學(xué)出版社 , 20201101 第二版。 【 8】 (美)科默( Comer, .) , 《用 TCP/IP 進(jìn)行網(wǎng)際互連第一卷 —— 原理、協(xié)議與結(jié)構(gòu)(英文版)》 , 電子工業(yè)出版社 , 202081。 《網(wǎng)絡(luò)編程》課程設(shè)計(jì) 26 【 9】 (英 )馬修 //(英 )斯通斯 |譯者 :陳健 , 《 Linux 程序設(shè)計(jì) (第 3 版 )》 , 人民郵電出版社 ,20200701。 【 10】 陳明 , 《 Ubuntu Linux 應(yīng)用技術(shù)教程》 , 清華大學(xué)出版社 , 202041。 【 11】 劉曉輝 //張劍宇 //張棟 , 《網(wǎng)絡(luò)服務(wù)搭建 配置與管理大全 (Linux 版 )》 , 電子工業(yè)出版社 , 20200301。 【 12】 謝希仁 , 《計(jì)算機(jī)網(wǎng)絡(luò)》 , 電子工業(yè)出版社 , 202011。
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1