下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、最新資料推薦2.基于Linux的TCP通信服務器端的實現(xiàn)2.1設計要求大家好,今天,與教研室老師商雖了一下題目,覺得你們組的這個題目有點難度,而且時間比較短,用LINUX可能會比 麻煩,一是它使用的聽命令比較復旅 另外編譯環(huán)境的安裝也比較麻煩費時.而我們每個老師耍帶4個組 沒有太多時間,這周我們又要內(nèi)審檢查考試卷子,所以現(xiàn)在更改一下設計內(nèi)容,不要求在Linux下做了, 可以在windows環(huán)境下來做,箏線程服務器端,用C卄語言或JAVA語言。這樣都做好G如果有時間再 熟悉一下Linux環(huán)境,等以后畢業(yè)設il的時候再實現(xiàn)Linux下的服務器。不知道你們的想法如何?也不知 道你們以前是否有熟悉Li
2、nux的?如有什么問題請隨時跟我聯(lián)系。2.1.1設計目的在linux環(huán)境下,掌握TCP通信的服務器端實現(xiàn)方式。2.1.2基本功能要求和設計目標(1)能夠偵聽客戶端的連接請求;(2)建立獨立的數(shù)據(jù)通信鏈路;(3)在通信兩端建立對等的通信協(xié)議;(4)完成數(shù)據(jù)包的收發(fā)與存儲;2.1.3擴展功能實現(xiàn)視頻監(jiān)控數(shù)據(jù)的采集以及控制命令的收發(fā)。2.2參考示例2.2.1案例說明(1)TCP三次握手機制為實現(xiàn)服務器端的TCP通信功能,服務器端需要能夠接受多個客戶端的通信 請求,并建立多條TCP通信鏈路。TCP的連接建立叫做三次握手。 客戶端發(fā)送一個帶SYN標志的TCP報文到服務器。這是三次握手過程中址新資料推薦的
3、報文lo 服務器端回應客戶端的,這是三次握手中的第2個報文,這個報文同時 帶ACK標志和SYN標志。因此它表示對剛才客戶端SYN報文的回應;同時乂 標志SYN給客戶端,詢問客戶端是否準備好進行數(shù)據(jù)通訊。 客戶必須再次回應服務段一個ACK報文,這是報文段3,如圖1。數(shù)據(jù)傳輸是在連接建立后,雙向的數(shù)據(jù)傳送就可以開始??蛻艉头掌鞫?可以在兩個方向傳送數(shù)據(jù)和確認。主機A主機呂圖1 TCP協(xié)議建立連接三次握手過程(2)套接字(Sockets)的概念Windows下網(wǎng)絡編程的規(guī)范Windows Sockets是Windows下得到廣泛應用的、開放的、支持多種協(xié)議的網(wǎng)絡編程接口。SocketX稱套接字,是
4、進程之間通信的抽象連接點??梢酝ㄟ^一個形象的 例子來理解這個概念,現(xiàn)實生活中的電話是人們聯(lián)系的常用工具,雙方只要使用 兩部電話機就可以交談。在計算機世界中,兩個程序就是使用Socket進行通信 的,一個Socket就好比一部電話機,兩個程序在網(wǎng)絡上通過一個雙向鏈路進行通 信,這個雙向鏈路的每一端就成為一個Socketo進程之間要通信,首先要建立各自的Socket,就像要打電話一定要先有電 話機一樣,打電話時每部電話機都可以說和聽。與此類似,每個Socket也都可 以進行讀/寫操作,讀/寫操作時分別要用到Socket中的輸入流和輸出流。建立連接后,客戶程序可以向Socket里寫入請求,然后服務器
5、會處理這個請 求,并把處理結(jié)果通過Socket送回。服務器應用程序一般監(jiān)聽一個特定端口以等 待一個客戶的連接請求,當一個連接請求到達時,客戶和服務器建立一個通信連 接。在連接過程中,客戶被分配一個本地端口號并且與一個Socket連接,客戶通 過寫Socket來通知服務器,通過讀Socket來獲取信息。類似地,服務器也獲取一 個本地端口號,它需要一個新的端口號來監(jiān)聽原始端口上的其它連接請求。服務 器也給它的本地端口連接一個Socket,讀寫來自客戶的請求。根據(jù)網(wǎng)絡通信的特址新資料推薦征,套接字可分為兩類:流套接字和數(shù)據(jù)報套接字。 流套接字流套接字提供雙向的、有序的、無重復并且無記錄邊界的數(shù)據(jù)流服
6、務,它適 用于處理大量數(shù)據(jù)。網(wǎng)絡傳輸層可以將數(shù)據(jù)分散和集中到合適尺寸的數(shù)據(jù)包中。流套接字是面向連接的,通信雙方進行數(shù)據(jù)交換之前,必須建立一條路徑, 這樣既確定了它們之間存在的路由,乂保證了雙方都是活動的、可彼此響應的, 但通信雙方之間建立一個通信信道需要很多開支。除此以外,大部分面向連接的 協(xié)議為保證發(fā)送無誤,可能會需要執(zhí)行額外的訃算機來驗證正確性,因此會進一 步增加開支。 數(shù)據(jù)報套接字數(shù)據(jù)報套接字支持雙向的數(shù)據(jù)流,但并不保證數(shù)據(jù)傳輸?shù)目煽啃?、有序性?和無重復性。也就是說,一個從數(shù)據(jù)報套接字接收信息的進程有可能發(fā)現(xiàn)信息重 復,或者和發(fā)出時的順序不同的悄況。此外,數(shù)據(jù)報套接字的一個重要特點是它
7、 保留了記錄邊界。對于這一特點,數(shù)據(jù)報套接口采用了與現(xiàn)在許多包交換網(wǎng)絡(例 如以太網(wǎng))非常類似的模型。數(shù)據(jù)報套接字是無連接的,它不保證接收端是否正在偵聽,類似于郵政服務: 發(fā)信人把信裝入郵箱即可,至于收件人是否能收到這封信或郵局是否能按時將信 件投遞到收件人處等,發(fā)件人都不得而知。因此,數(shù)據(jù)報并不可靠,需有程序員 負責管理數(shù)據(jù)報的排序和可靠性。應用程序一般僅在同一類的套接口間通信。不過只要底層的通信協(xié)議允許, 不同類型的套接口也照樣可以通信。本設計采用面向連接的TCP協(xié)議,所以使用流套接字。(3)客戶機/服務器模型TCP/IP協(xié)議應用的主要工作模式是客戶機/服務器模式(Client/Serve
8、r,簡稱 C/S模式)。在兩個不同進程的通信過程中,一方發(fā)出服務請求,一方提供服務, 通常稱它們?yōu)椤翱蛻暨M程”和“服務進程”。顯然,兩個進程之間的通信實際上 是基于通信協(xié)議的進程的同步過程,服務進程作為自愿的提供者,為眾多主機上 的客戶進程提供服務。服務進程要先于客戶進程開啟,在某一確定的網(wǎng)絡地址(IP 地址+端口號)等待客戶進程的請求,如有請求到達,服務進程釆取某種方式(并 發(fā)服務或者重復服務),直到客戶進程關閉,然后服務進程繼續(xù)等待下一個請求 服務的進程。服務器通常采用并發(fā)服務的方式。所謂并發(fā)服務,就是服務進程在有客戶請 求到來時,激活新的進程來專門為此客戶請求提供服務,并在客戶終止請求后
9、殺 死該進程,與此同時,原先的進程可以繼續(xù)在原來的端口等待下一個客戶的連接。 Socket編程接口為新的請求創(chuàng)建一個專門的“數(shù)據(jù)套接字”,并發(fā)服務器根據(jù)該 套接字創(chuàng)建專門的服務進程。并發(fā)服務的最大優(yōu)點是能及時相應請求,雖然創(chuàng)建新進程會增加系統(tǒng)開銷。與此相對應的是重復服務,它利用“數(shù)據(jù)套接字S在 監(jiān)聽的進程上直接進行服務。需要說明的是,兩種類型的Socket(SOCK_STREAM 和SOCK.DGRAM)的工作流程是不同的,分別如圖2和圖3所示。服務器客戶機建立連接請求/應答圖2流套接字服務的工作流程示意圖服務器客戶機圖3數(shù)據(jù)報套接字服務的工作流程示意圖2.2.2網(wǎng)絡結(jié)構設計(1) 網(wǎng)絡拓撲結(jié)
10、構采用星型連接。Server(2) 使用10/100Mbps的網(wǎng)卡。(3) 軟件實現(xiàn)編程語言采用C語言,利用socket進行通信。(4) 開發(fā)平臺linuxo 11!于linux能夠提供強大的網(wǎng)絡支持,以及安全特性,當 前主流服務器端都采用linux平臺構筑。2.2.3軟件設計設il流程圖:爲,:洛41?通佇邇卅拆線創(chuàng)建偵折Socket fiinzcoo1圖4軟件流程圖(1)建立一個用于偵聽的socket,始終在端口 2000進行偵聽。(2)當有客戶端發(fā)出鏈路請求,偵聽鏈路接受,并且建立數(shù)據(jù)鏈路,在獨立的 線程進行數(shù)據(jù)通信。(3)拆分通信數(shù)據(jù)包,數(shù)據(jù)包最大長度為1KB,在每個數(shù)據(jù)包包頭的1個字節(jié), 用于描述數(shù)據(jù)包的序號,循環(huán)計數(shù)。也就是說,包頭的第一個數(shù)據(jù)依次為0, 1, 2.255,超過255后,從0開始重新計數(shù)。(4)接收的的數(shù)據(jù),寫入文件,每個文件最大長度上限為1MB。225參考程序清單2.2.6測試方法1.使用客戶端與服務器端進行聯(lián)機,確認收發(fā)數(shù)據(jù)正確;2在服務器端,使用TCPDUMP截獲數(shù)據(jù)進行分析,確保數(shù)據(jù)正確。227思考與提高TCP通信是提供多種網(wǎng)絡的通信基礎,掌握TCP
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版鍋爐設備維護保養(yǎng)與能源審計合同范本3篇
- 2025版內(nèi)河水路危險品運輸合同及應急救援協(xié)議3篇
- 二零二五年度挖機操作技能競賽贊助合同
- 1 如何合理選擇抗凝藥物
- 二零二五版民房建筑項目施工合同履約監(jiān)督協(xié)議范本4篇
- 2018年稅務稽查風險防范及企業(yè)應對策略
- 2025年度個人房屋買賣價格調(diào)整及支付合同2篇
- 二零二五年度戶外廣告牌發(fā)布與社區(qū)宣傳合作合同范本3篇
- 2025年度農(nóng)用土地托管服務與機械租賃合同4篇
- 2025年度個人二手房買賣協(xié)議書范本:房屋交易環(huán)保評估合同2篇
- 2025貴州貴陽市屬事業(yè)單位招聘筆試和高頻重點提升(共500題)附帶答案詳解
- 2024年住院醫(yī)師規(guī)范化培訓師資培訓理論考試試題
- 期末綜合測試卷(試題)-2024-2025學年五年級上冊數(shù)學人教版
- 招標采購基礎知識培訓
- 2024年廣東省公務員錄用考試《行測》試題及答案解析
- 五年級口算題卡每天100題帶答案
- 結(jié)構力學本構模型:斷裂力學模型:斷裂力學實驗技術教程
- 2024年貴州省中考理科綜合試卷(含答案)
- 無人機技術與遙感
- PDCA提高臥床患者踝泵運動的執(zhí)行率
- 黑色素的合成與美白產(chǎn)品的研究進展
評論
0/150
提交評論