版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、最新資料推薦2.基于Linux的TCP通信服務(wù)器端的實現(xiàn)2.1設(shè)計要求大家好,今天,與教研室老師商雖了一下題目,覺得你們組的這個題目有點難度,而且時間比較短,用LINUX可能會比 麻煩,一是它使用的聽命令比較復(fù)旅 另外編譯環(huán)境的安裝也比較麻煩費時.而我們每個老師耍帶4個組 沒有太多時間,這周我們又要內(nèi)審檢查考試卷子,所以現(xiàn)在更改一下設(shè)計內(nèi)容,不要求在Linux下做了, 可以在windows環(huán)境下來做,箏線程服務(wù)器端,用C卄語言或JAVA語言。這樣都做好G如果有時間再 熟悉一下Linux環(huán)境,等以后畢業(yè)設(shè)il的時候再實現(xiàn)Linux下的服務(wù)器。不知道你們的想法如何?也不知 道你們以前是否有熟悉Li
2、nux的?如有什么問題請隨時跟我聯(lián)系。2.1.1設(shè)計目的在linux環(huán)境下,掌握TCP通信的服務(wù)器端實現(xiàn)方式。2.1.2基本功能要求和設(shè)計目標(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)服務(wù)器端的TCP通信功能,服務(wù)器端需要能夠接受多個客戶端的通信 請求,并建立多條TCP通信鏈路。TCP的連接建立叫做三次握手。 客戶端發(fā)送一個帶SYN標志的TCP報文到服務(wù)器。這是三次握手過程中址新資料推薦的
3、報文lo 服務(wù)器端回應(yīng)客戶端的,這是三次握手中的第2個報文,這個報文同時 帶ACK標志和SYN標志。因此它表示對剛才客戶端SYN報文的回應(yīng);同時乂 標志SYN給客戶端,詢問客戶端是否準備好進行數(shù)據(jù)通訊。 客戶必須再次回應(yīng)服務(wù)段一個ACK報文,這是報文段3,如圖1。數(shù)據(jù)傳輸是在連接建立后,雙向的數(shù)據(jù)傳送就可以開始??蛻艉头?wù)器都 可以在兩個方向傳送數(shù)據(jù)和確認。主機A主機呂圖1 TCP協(xié)議建立連接三次握手過程(2)套接字(Sockets)的概念Windows下網(wǎng)絡(luò)編程的規(guī)范Windows Sockets是Windows下得到廣泛應(yīng)用的、開放的、支持多種協(xié)議的網(wǎng)絡(luò)編程接口。SocketX稱套接字,是
4、進程之間通信的抽象連接點。可以通過一個形象的 例子來理解這個概念,現(xiàn)實生活中的電話是人們聯(lián)系的常用工具,雙方只要使用 兩部電話機就可以交談。在計算機世界中,兩個程序就是使用Socket進行通信 的,一個Socket就好比一部電話機,兩個程序在網(wǎng)絡(luò)上通過一個雙向鏈路進行通 信,這個雙向鏈路的每一端就成為一個Socketo進程之間要通信,首先要建立各自的Socket,就像要打電話一定要先有電 話機一樣,打電話時每部電話機都可以說和聽。與此類似,每個Socket也都可 以進行讀/寫操作,讀/寫操作時分別要用到Socket中的輸入流和輸出流。建立連接后,客戶程序可以向Socket里寫入請求,然后服務(wù)器
5、會處理這個請 求,并把處理結(jié)果通過Socket送回。服務(wù)器應(yīng)用程序一般監(jiān)聽一個特定端口以等 待一個客戶的連接請求,當(dāng)一個連接請求到達時,客戶和服務(wù)器建立一個通信連 接。在連接過程中,客戶被分配一個本地端口號并且與一個Socket連接,客戶通 過寫Socket來通知服務(wù)器,通過讀Socket來獲取信息。類似地,服務(wù)器也獲取一 個本地端口號,它需要一個新的端口號來監(jiān)聽原始端口上的其它連接請求。服務(wù) 器也給它的本地端口連接一個Socket,讀寫來自客戶的請求。根據(jù)網(wǎng)絡(luò)通信的特址新資料推薦征,套接字可分為兩類:流套接字和數(shù)據(jù)報套接字。 流套接字流套接字提供雙向的、有序的、無重復(fù)并且無記錄邊界的數(shù)據(jù)流服
6、務(wù),它適 用于處理大量數(shù)據(jù)。網(wǎng)絡(luò)傳輸層可以將數(shù)據(jù)分散和集中到合適尺寸的數(shù)據(jù)包中。流套接字是面向連接的,通信雙方進行數(shù)據(jù)交換之前,必須建立一條路徑, 這樣既確定了它們之間存在的路由,乂保證了雙方都是活動的、可彼此響應(yīng)的, 但通信雙方之間建立一個通信信道需要很多開支。除此以外,大部分面向連接的 協(xié)議為保證發(fā)送無誤,可能會需要執(zhí)行額外的訃算機來驗證正確性,因此會進一 步增加開支。 數(shù)據(jù)報套接字數(shù)據(jù)報套接字支持雙向的數(shù)據(jù)流,但并不保證數(shù)據(jù)傳輸?shù)目煽啃浴⒂行蛐缘?和無重復(fù)性。也就是說,一個從數(shù)據(jù)報套接字接收信息的進程有可能發(fā)現(xiàn)信息重 復(fù),或者和發(fā)出時的順序不同的悄況。此外,數(shù)據(jù)報套接字的一個重要特點是它
7、 保留了記錄邊界。對于這一特點,數(shù)據(jù)報套接口采用了與現(xiàn)在許多包交換網(wǎng)絡(luò)(例 如以太網(wǎng))非常類似的模型。數(shù)據(jù)報套接字是無連接的,它不保證接收端是否正在偵聽,類似于郵政服務(wù): 發(fā)信人把信裝入郵箱即可,至于收件人是否能收到這封信或郵局是否能按時將信 件投遞到收件人處等,發(fā)件人都不得而知。因此,數(shù)據(jù)報并不可靠,需有程序員 負責(zé)管理數(shù)據(jù)報的排序和可靠性。應(yīng)用程序一般僅在同一類的套接口間通信。不過只要底層的通信協(xié)議允許, 不同類型的套接口也照樣可以通信。本設(shè)計采用面向連接的TCP協(xié)議,所以使用流套接字。(3)客戶機/服務(wù)器模型TCP/IP協(xié)議應(yīng)用的主要工作模式是客戶機/服務(wù)器模式(Client/Serve
8、r,簡稱 C/S模式)。在兩個不同進程的通信過程中,一方發(fā)出服務(wù)請求,一方提供服務(wù), 通常稱它們?yōu)椤翱蛻暨M程”和“服務(wù)進程”。顯然,兩個進程之間的通信實際上 是基于通信協(xié)議的進程的同步過程,服務(wù)進程作為自愿的提供者,為眾多主機上 的客戶進程提供服務(wù)。服務(wù)進程要先于客戶進程開啟,在某一確定的網(wǎng)絡(luò)地址(IP 地址+端口號)等待客戶進程的請求,如有請求到達,服務(wù)進程釆取某種方式(并 發(fā)服務(wù)或者重復(fù)服務(wù)),直到客戶進程關(guān)閉,然后服務(wù)進程繼續(xù)等待下一個請求 服務(wù)的進程。服務(wù)器通常采用并發(fā)服務(wù)的方式。所謂并發(fā)服務(wù),就是服務(wù)進程在有客戶請 求到來時,激活新的進程來專門為此客戶請求提供服務(wù),并在客戶終止請求后
9、殺 死該進程,與此同時,原先的進程可以繼續(xù)在原來的端口等待下一個客戶的連接。 Socket編程接口為新的請求創(chuàng)建一個專門的“數(shù)據(jù)套接字”,并發(fā)服務(wù)器根據(jù)該 套接字創(chuàng)建專門的服務(wù)進程。并發(fā)服務(wù)的最大優(yōu)點是能及時相應(yīng)請求,雖然創(chuàng)建新進程會增加系統(tǒng)開銷。與此相對應(yīng)的是重復(fù)服務(wù),它利用“數(shù)據(jù)套接字S在 監(jiān)聽的進程上直接進行服務(wù)。需要說明的是,兩種類型的Socket(SOCK_STREAM 和SOCK.DGRAM)的工作流程是不同的,分別如圖2和圖3所示。服務(wù)器客戶機建立連接請求/應(yīng)答圖2流套接字服務(wù)的工作流程示意圖服務(wù)器客戶機圖3數(shù)據(jù)報套接字服務(wù)的工作流程示意圖2.2.2網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(1) 網(wǎng)絡(luò)拓撲結(jié)
10、構(gòu)采用星型連接。Server(2) 使用10/100Mbps的網(wǎng)卡。(3) 軟件實現(xiàn)編程語言采用C語言,利用socket進行通信。(4) 開發(fā)平臺linuxo 11!于linux能夠提供強大的網(wǎng)絡(luò)支持,以及安全特性,當(dāng) 前主流服務(wù)器端都采用linux平臺構(gòu)筑。2.2.3軟件設(shè)計設(shè)il流程圖:爲(wèi),:洛41?通佇邇卅拆線創(chuàng)建偵折Socket fiinzcoo1圖4軟件流程圖(1)建立一個用于偵聽的socket,始終在端口 2000進行偵聽。(2)當(dāng)有客戶端發(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.使用客戶端與服務(wù)器端進行聯(lián)機,確認收發(fā)數(shù)據(jù)正確;2在服務(wù)器端,使用TCPDUMP截獲數(shù)據(jù)進行分析,確保數(shù)據(jù)正確。227思考與提高TCP通信是提供多種網(wǎng)絡(luò)的通信基礎(chǔ),掌握TCP
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年制動帶項目可行性研究報告
- 別墅房屋轉(zhuǎn)讓合同范本
- 產(chǎn)品訂購合同范本模板
- 凈化工程合同范本
- 企業(yè)食堂經(jīng)營合同范本
- 如何推動專家型校長的成長
- 農(nóng)村屋瓦收購合同范本
- 買汽車有合同范本
- 使用權(quán)銷售合同范例
- 2025年度智能農(nóng)業(yè)管理系統(tǒng)開發(fā)與應(yīng)用合同
- 2025年春季學(xué)期學(xué)校德育工作計劃安排表(完整版)
- 2025年有機肥行業(yè)發(fā)展趨勢分析報告
- 中央2025年中國文聯(lián)所屬單位招聘14人筆試歷年參考題庫附帶答案詳解
- 學(xué)生作文稿紙(A4打印)
- 小學(xué)思政培訓(xùn)
- 《森林火災(zāi)預(yù)防與撲救技術(shù)課件教程》
- 2024美團共享出行加盟合同
- 2024年人教版初中英語九年級全冊單元測評與答案
- 永州市2025屆高三高考第二次模擬考試(二模)語文試卷(含答案)
- 國學(xué)智慧與健康幸福人生(課件)
- 【渞法】學(xué)會自我保護教學(xué)設(shè)計 七年級道德與法治下冊(統(tǒng)編版2024)
評論
0/150
提交評論