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

正文內(nèi)容

基于linux平臺(tái)tcpip通信協(xié)議在聊天軟件中的研究與應(yīng)用-資料下載頁(yè)

2025-11-03 15:28本頁(yè)面

【導(dǎo)讀】集體已經(jīng)發(fā)表或撰寫過(guò)的作品成果。對(duì)本文的研究做出重要貢獻(xiàn)的個(gè)。人和集體均已在文中以明確方式標(biāo)明。本人完全意識(shí)到本聲明的法律。結(jié)果由本人承擔(dān)。[1]華清遠(yuǎn)見(jiàn)嵌入式學(xué)院[中].從實(shí)踐中學(xué)嵌入式Linux操作系統(tǒng)[M].北京:電子工業(yè)出版社,隨著網(wǎng)絡(luò)的誕生,網(wǎng)絡(luò)聊天軟件也隨之而來(lái)?;睿灿性絹?lái)越多的人將網(wǎng)絡(luò)聊天軟件作為他們?nèi)粘I罱涣骱屯ㄐ诺墓ぞ?。開(kāi),而基于Linux環(huán)境下TCP/IP協(xié)議的應(yīng)用具有深入研究?jī)r(jià)值。完成簡(jiǎn)單的文字通信、文件傳輸?shù)??;竟δ艿膶?shí)現(xiàn),達(dá)到課題要求目的,提高通信協(xié)議的應(yīng)用和網(wǎng)絡(luò)應(yīng)用綜合能力。聊天工具除了娛樂(lè)性功能外,更開(kāi)始作為一種工作工具被越來(lái)越廣泛接受。國(guó)內(nèi)外對(duì)即時(shí)通訊。網(wǎng)絡(luò)的不斷普及,傳統(tǒng)的紙張式文件傳輸方式已經(jīng)不再適合發(fā)展的需要,人們更期待一種便。捷、高效、環(huán)保、安全的網(wǎng)絡(luò)傳輸方式。結(jié)合基于Linux平臺(tái)下的TCP/IP網(wǎng)絡(luò)通信原理,給出了一。[7]Stevens[美].UNIX網(wǎng)絡(luò)編程第二版[M].北京:清華大學(xué)出版社,

  

【正文】 執(zhí)行體登記一個(gè)協(xié)議端口。也就是說(shuō),程序告訴 socket 執(zhí)行體使用哪一個(gè)協(xié)議端口進(jìn)行數(shù)據(jù)傳送。 Socket 執(zhí)行體接著告訴傳輸層某個(gè)特定協(xié)議端口已被使用,并將其收到的所有數(shù)據(jù)傳送給 Socket API。 UDP 方式連接 采用 UDP 協(xié)議的程序不需要有服務(wù)器,兩個(gè)程序之間可以通過(guò)無(wú)連接的方式行通信,所以無(wú)連接是使用 UDP 協(xié)議程序的一個(gè)顯著特點(diǎn)。使用無(wú)連接協(xié)議的程序和使用面向連接協(xié)議的服務(wù)器程序之間的主要相似之處是它們都必須對(duì)一個(gè)協(xié)議端口進(jìn)行偵聽(tīng)。例如,無(wú)連接和連接服務(wù)器程序必須在協(xié)議端口偵聽(tīng)客戶請(qǐng)求。同樣,由于無(wú)連接客戶程序沒(méi)有和遠(yuǎn)地主機(jī)建立直接連接,所以它也必須對(duì)協(xié)議端口進(jìn)行偵聽(tīng),以便接收以對(duì)它服務(wù)請(qǐng)求產(chǎn)生的數(shù)據(jù)報(bào)應(yīng)答。 Socket API 中的 bind()函數(shù)讓程序?qū)⒁粋€(gè)本地地址(包括主機(jī)地址和協(xié)議端口)和一個(gè) Socket 聯(lián)系起來(lái)。 下面程序行顯示了一個(gè)典型的函數(shù)調(diào)用: result= bind(socket_handle,local_structure socket_address, address_ length) 11 無(wú)連接客戶程序也對(duì)一個(gè)協(xié)議端口進(jìn)行偵聽(tīng)。使用無(wú)連接協(xié)議的程序不和遠(yuǎn)地主機(jī)建立直接連接。無(wú)連接客戶程序使用數(shù)據(jù)報(bào)發(fā)送網(wǎng)絡(luò)服務(wù)請(qǐng)求,它不建立點(diǎn)到點(diǎn)連接。因此無(wú)連接客戶程序必須在一個(gè)協(xié)議端口,對(duì)應(yīng)答數(shù)據(jù)報(bào)進(jìn)行偵聽(tīng)。與服務(wù)器程序一樣,無(wú)連接客戶程序也使用 bind 函數(shù)讓 Socket 執(zhí)行體登記協(xié)議端口。也就是說(shuō),類似服務(wù)器程序,無(wú)連接客戶程序告訴 Socket 執(zhí)行體使用哪個(gè)協(xié)議端口進(jìn)行數(shù)據(jù)傳輸。 Socket 執(zhí)行體處理傳輸層內(nèi) UDP 軟件模塊和客戶程序之間的接口。 總體設(shè)計(jì)方案 為實(shí)現(xiàn)網(wǎng)絡(luò)聊天的功能,該軟件采用 Socket 編程,服務(wù)器與客戶端采用了TCP/IP 方式連接,在設(shè)計(jì)聊天方案時(shí),實(shí)行將所有信息發(fā)往服務(wù)器端,再由服務(wù)器進(jìn)行分別處理的思路,服務(wù)器端是所有信息的中心。 服務(wù)器功能模塊劃分 服務(wù)器負(fù)責(zé)向各個(gè)客戶端發(fā)布系統(tǒng)消息。接受來(lái)自客戶端的各種信息并分別處理。針對(duì)這些操作,服務(wù)器做了如下的模塊劃分: 處理登陸信息模塊:檢查登陸信息是否正確,并向客戶端返回登陸信息,如信息正確。 處理聊天信息模塊:轉(zhuǎn)發(fā)消息給指定的用戶。 圖 21 服務(wù)器功能模型 客戶端功能模塊劃分 客戶端主要負(fù)責(zé)處理用戶的操作信息,當(dāng)用戶做出相應(yīng)的動(dòng)作時(shí)客戶端應(yīng)該能夠及時(shí)地做出相應(yīng)。因此,針對(duì)這些操作特性,將客戶端模塊進(jìn)行如下劃分: 登陸功能模塊:建立與服務(wù)器的連接并登陸,能顯示登陸錯(cuò)誤信息。 聊天功能模塊:處 理各種聊天信息。 配置信息模塊:提供基本的軟件配置操作。 客戶端功能示意圖: 圖 22 客戶端功能模型 客 戶 端聊 天 功 能 模 塊 界 面 顯 示 模 塊服 務(wù) 器處 理 聊 天 信 息 處 理 登 錄 信 息服 務(wù) 器 端 12 消息標(biāo)識(shí)的定義 define GIF_LOGIN_MSG 1 用戶登錄 define GIF_CHAT_MSG 2 聊天信息 define GIF_SUCCESS_N_ERROR_MSG 8 消息請(qǐng)求成功或失敗信息 用戶發(fā)送消息成功或失敗定義: define GIF_ERROR_LOGIN_INCORRECT 101 錯(cuò)誤的登陸信息 define GIF_SUCCESS_ADD_CONTACTS 102 添加連接信息成功 define GIF_ERROR_ADD_CONTACTS 103 添加連接信息錯(cuò)誤 消息結(jié)構(gòu)體的設(shè)計(jì) 消息頭 : 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。 13 3. 軟件流程 本節(jié)主要敘述了該軟件的整體運(yùn)作流程,包括服務(wù)器和客戶端對(duì)消息的處理等流程,通過(guò)本節(jié)將能夠?qū)浖墓ぷ髁鞒痰玫揭粋€(gè)總體的認(rèn)識(shí)。 服務(wù)器消息處理流程 服務(wù)器運(yùn)行后即處于監(jiān)聽(tīng)狀態(tài),當(dāng)監(jiān)聽(tīng)到有連接請(qǐng)求時(shí)服務(wù)器進(jìn)入消息處理流程,因?yàn)榉?wù)器為并發(fā)服務(wù)器 ,所以可以同時(shí)對(duì)多個(gè)請(qǐng)求做出相應(yīng)。具體流程如下圖 31 所示。 錯(cuò)誤 圖 31 服務(wù)器流程圖 客戶端操作流程 這款聊天軟件的客戶端采用圖形化用戶接口方式,按照事先編寫好的函數(shù)作相應(yīng)的處理動(dòng)作,圖 42 總體上描述了客戶端軟件的操作處理流程 創(chuàng) 建 套 接 字S o c k e t ( )綁 定 地 址B i n d ( )接 聽(tīng) 連 接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 a t e ( )發(fā) 送 錯(cuò) 誤 信 息 并 關(guān)閉 連 接 套 接 字連 接 是 否 成 功處 理 連 接 信 息R e c v ( )信 息 判 斷根 據(jù) 信 息 標(biāo) 識(shí) 選 擇 處理 語(yǔ) 句 S w i n t c h ( )處 理 用 戶 登 錄聊 天 信 息 14 關(guān)閉窗口 關(guān)閉窗口 圖 32 客戶端流程圖 客戶端消息發(fā)送和接收流程 客戶端運(yùn)行后首先要用戶登錄到服務(wù)器,如果登陸成功服務(wù)器會(huì)將在線的用戶聯(lián)系人列表發(fā)送給客戶端,此時(shí)客戶端 即可顯示有哪些好友在線而哪些是離線的。當(dāng)用戶點(diǎn)擊在線好友時(shí)便會(huì)彈出一個(gè)聊天信息窗體,該窗體用于發(fā)送和接收用戶的聊天信息。 登錄用戶流程 系統(tǒng)設(shè)定 2 個(gè)用戶信息,在登陸界面填寫已設(shè)定的用戶信息并登錄。具體流程如圖 44 所示: 圖 33管理用戶流程圖 添 加 用 戶 信 息等 待 事 件 觸 發(fā)請(qǐng) 求 登 錄彈 出 聊 天 窗 口是 否 登 錄 成 功 根 據(jù) 判 斷 選 擇 要 觸 發(fā) 的 事 件彈 出 聊 天 窗 口顯 示 用 戶 退 出 用 戶運(yùn) 行 用 戶 管 理 15 通信協(xié)議中三次握手 在 TCP/IP 協(xié)議中, TCP 協(xié)議提供可靠的連接服務(wù),采用三次握手建立一個(gè)連接。 圖 41三次 握手 第一次 第一次握手:建立連接時(shí),客戶端發(fā)送 syn 包( syn=j)到服務(wù)器,并進(jìn)入SYN_SENT 狀態(tài),等待服務(wù)器確認(rèn); SYN:同步序列編號(hào)( Synchronize Sequence Numbers)。 第二次 16 第二次握手:服務(wù)器收到 syn 包,必須確認(rèn)客戶的 SYN( ack=j+1),同時(shí)自己也發(fā)送一個(gè) SYN 包( syn=k),即 SYN+ACK 包,此時(shí)服務(wù)器進(jìn)入 SYN_RECV狀態(tài); 第三次 第三次握手:客戶端收到服務(wù)器的 SYN+ACK 包,向服務(wù)器發(fā)送確認(rèn)包ACK(ack=k+1),此包發(fā)送完畢,客戶端和 服務(wù)器進(jìn)入 ESTABLISHED 狀態(tài),完成三次握手。 完成三次握手,客戶端與服務(wù)器開(kāi)始傳送數(shù)據(jù)。 服務(wù)器消息處理模塊的設(shè)計(jì)與實(shí)現(xiàn) 服務(wù)器的消息處理模塊主要由以下部分組成,下面進(jìn)行分別論述: 用戶登錄消息處理模塊 : 當(dāng)服務(wù)器接收到用戶消息并判斷是登錄消息后,服務(wù)器將根據(jù)用戶所發(fā)送過(guò)來(lái)的用戶名和密碼到 表中進(jìn)行匹配,如果匹配成功則成功登錄。如果匹配不成功,服務(wù)器將發(fā)送登錄失敗消息給客戶端,要求用戶重新登錄。 服務(wù)器數(shù)據(jù)存儲(chǔ)的方法 該服務(wù)器采用文件作為數(shù)據(jù)存 儲(chǔ)的對(duì)象。之所以采用這種發(fā)式是因?yàn)樵摲?wù)器作為一個(gè)小型的聊天軟件的服務(wù)器,本身所要求保存的數(shù)據(jù)量并不大,且用戶數(shù)量也是比較有限的,在這種情況下采用文件方式對(duì)信息進(jìn)行讀取在速度和開(kāi)銷上都要有一些優(yōu)勢(shì),且便于管理員管理用戶。 在編程時(shí)主要使用 fopen fread fwrite fclose 等函數(shù)對(duì)文件進(jìn)行操作,被打開(kāi)文件的操作權(quán)限由 fopen 的參數(shù)來(lái)決定,讀取控制由 fread 來(lái)完成, fwrite 主要負(fù)責(zé)向文件中寫入新的信息。 服務(wù)器上主要存放用戶信息文件 : 該文件中保存了 用戶的 name 和 password。 客戶端主要窗口設(shè)計(jì) 根據(jù)前面的選題背景和需求分析,此款軟件的客戶端部分提供了圖形用戶界面。 登錄窗口: 當(dāng)用戶點(diǎn)擊主窗口中的 login 按鈕時(shí),該窗體被激活。 需要填寫信息: User id: 填寫用戶名 Password :填寫密碼 系統(tǒng)消息窗口: 17 當(dāng)用戶的操作成功或者失敗的時(shí)候,系統(tǒng)會(huì)顯示一條消息給用戶,以便提示用戶操作是否成功。在相關(guān)的函數(shù)內(nèi)將該窗口的激活屬性打開(kāi),消息窗口便會(huì)自動(dòng)的彈出并顯示消息。 此窗體是客戶端用戶在使用中會(huì)經(jīng)常 使用到的一些窗口事件,這些部件統(tǒng)一起來(lái)便形成了一套完整的客戶端圖形用戶界面。 18 5. 結(jié)論 從對(duì) Linux 基本了解和學(xué)習(xí)到對(duì)它的設(shè)計(jì)和編寫后,終于在自己的努力基于Linux 操作系統(tǒng)的網(wǎng)絡(luò)聊天軟件慢慢成型,先期設(shè)計(jì)的一些功能需求也都得到了進(jìn)一步實(shí)現(xiàn)。這款軟件目前所具備的功能已經(jīng)能夠滿足簡(jiǎn)單的聊天需求。服務(wù)器經(jīng)過(guò)多平臺(tái)的測(cè)試后,能夠穩(wěn)定的運(yùn)行??蛻舳藞D形界面效果達(dá)到預(yù)期的效果,操作起來(lái)也比較簡(jiǎn)單實(shí)用。欠缺之處在于沒(méi)有實(shí)現(xiàn)系統(tǒng)托盤,用戶使用時(shí)只能通過(guò)點(diǎn)擊任務(wù)欄的標(biāo)簽對(duì)軟件進(jìn)行顯示或隱藏,這一部分的功能將 會(huì)進(jìn)一步的完善。 大學(xué)四年學(xué)習(xí)成果的總結(jié),設(shè)計(jì)和編寫這樣一個(gè)軟件能夠?qū)⑺鶎W(xué)過(guò)的知識(shí)綜合運(yùn)用,并在實(shí)踐中得到提高,達(dá)到了預(yù)期的總結(jié)并檢驗(yàn)學(xué)習(xí)成果目的。當(dāng)在設(shè)計(jì)開(kāi)發(fā)過(guò)程中遇到問(wèn)題時(shí),能夠獨(dú)自分析并解決問(wèn)題,在設(shè)計(jì)開(kāi)發(fā)過(guò)程中能夠逐步的充實(shí)自己,這是我在做畢業(yè)設(shè)計(jì)過(guò)程中得到的最大的收獲。 19 參考文獻(xiàn) [1] 孫天澤 [中 ].嵌入式 Linux 操作系統(tǒng) [M].北京:人民郵電出版社, 2020 [2] 韋東山 [中 ].嵌入式 Linux 應(yīng)用開(kāi)發(fā)完全手冊(cè) [M].北京:人民郵電出版社, 2020 [3] 尚斌 [中 ].嵌入式 Linux C 語(yǔ)言開(kāi)發(fā)入門及編程實(shí) 踐 [M].北京:電子工業(yè)出版社, 2020 [4] Stevens[美 ].UNIX 環(huán)境高級(jí)編程第二版 [M].北京:人民郵電出版社 , 2020 [5] Stevens[美 ].TCP/IP 詳解 卷 1:協(xié)議 [M].西安:機(jī)械工業(yè)出版社, 2020 [6] Stevens[美 ].UNIX 網(wǎng)絡(luò)編程 (卷 1:套接口 API)第三版 [M].北京:清華大學(xué) 出版社, 2020 [7] Stevens[美 ].UNIX 網(wǎng)絡(luò)編程 (卷 2:進(jìn)程間通信 )第二版 [M].北京:清華大學(xué)出版社, 2020 [8] Dennis C Programming Language[M].北京:機(jī)械工業(yè)版社, 2020 [9] 孫瓊 [中 ]. 嵌入式 Linux 應(yīng)用程序開(kāi)發(fā)詳解 [M].北京:人民郵電出版社, 2020 [10] 吳岳 [中 ].Linux C 程序設(shè)計(jì)大全 [M].北京:清華大學(xué)出版社, 2020 參數(shù)文獻(xiàn)的標(biāo)識(shí) 參考文獻(xiàn)類型 專著 論文集 單篇論文 報(bào)紙文章 期刊文章 文獻(xiàn)類型標(biāo)識(shí) M C A N J 參考文獻(xiàn)類型 學(xué)位論文 報(bào)告 標(biāo)準(zhǔn) 專利 其 它文獻(xiàn) 文獻(xiàn)類型標(biāo)識(shí) D R S P Z 20 附錄 A:Client 端代碼 include int sock_fd。 struct sockaddr_in serv_addr。 struct
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1