外文翻譯--socket通信翻譯數(shù)據通信實驗中的套接字編程 中文版
《外文翻譯--socket通信翻譯數(shù)據通信實驗中的套接字編程 中文版》由會員分享,可在線閱讀,更多相關《外文翻譯--socket通信翻譯數(shù)據通信實驗中的套接字編程 中文版(6頁珍藏版)》請在裝配圖網上搜索。
北京工業(yè)大學畢業(yè)設計(譯文) 15 數(shù)據通信實驗中的套接字編程 ● 摘要 雖然許多數(shù)據通信的課程都沒有教授編程方面的內容,但計算機專業(yè)課程的規(guī)劃應該包括編程。許多有編程內容的數(shù)據通信課程當處理詳細的網絡層工程時利用了 接字編程允許學生們處理同樣的事情和問題,但是從文章中它看起來更有用,而且更有趣。另外,如果套接字類使用 C++,希望得到的對套接字的操作差不多都可以呈現(xiàn)出來。 ● 序論 數(shù)據通信是大多數(shù)管理信息系統(tǒng) (及服務器 /客戶端 (C/S)程序標準的一部分。目前作為課程廣泛改善實行的證據是提供教材的變化。許多 教材,無論是針對 是 很少或沒有提供實驗活動。 程趨向強調數(shù)據通信和網絡的管理。最近的新聞列表顯示了對使用數(shù)據通信和通信所提供的種類和方式的調查。無論國內或國外,合作方案都非常流行。 程會使用一些非常技術和寬泛的教材。很明顯,一個工程的規(guī)劃需要更多廣泛和詳細的課程去研究數(shù)據通信的物理和結構方面。 實驗可能的類型同樣很廣泛?!叭蚝献髂P汀睆娖冉探o我們數(shù)據通信如何工作,以用于復雜的通信機制和提供一個解釋這些系統(tǒng)功能的基礎?;谔峁┑馁Y源,去考慮通過允許學生嘗試通信的不同的物理和邏輯類型 的設計選擇。 另一個極端是強調低水平的,數(shù)據通信物理理解的練習 —— 幾乎是一個工程逼近。一個典型的例子是使用 連續(xù)的端口。除了編寫代碼去操作物理硬盤之外,更多復雜的概念將被研究。在作者過去使用過的資料中,利用一個 議和令牌環(huán)來實現(xiàn)文件傳送的分配。這個實驗步驟包括基于一個發(fā)展中的 據鏈路層的大規(guī)模工程。 這些步驟中沒有提供實際可操作的硬件經驗。除了這張紙中的練習,作者還安排了一個通過硬件和軟件的安裝將 聯(lián)網的工程。服務器需要額外的安裝和配置。當套接字模型被采用時,這樣一個 工程就可以繼續(xù)下去。這里的步驟呈現(xiàn)了為學生們提供了一個數(shù)據通信和網絡的廣闊視角。 ● 接字 簡單地講,套接字是一個機制,在相同或不同的機器上實現(xiàn)信息傳送的過程。如果這個過程在同樣的機器上,套接字可以用作管道。 接字允許運行在不同的機器之間的通信。這個系統(tǒng)與 i/o 擁有同樣的調用。套接字編程的一個典型的步驟是創(chuàng)建一個過程,打開服務器套接字端口和偵聽另一個嘗試連接的過程??蛻舳丝梢杂门c服務器端套接字同樣的端口號打開一個套接字,請求服務連接。如果服務器偵聽到這個請求,就建立了一個 連接。通信使用 )和 函數(shù)繼續(xù)。 北京工業(yè)大學畢業(yè)設計(譯文) 16 通信有許多標準協(xié)議的類型,比較普遍地兩種是 用戶數(shù)據報協(xié)議)和 傳輸控制協(xié)議)。兩種協(xié)議都是經過一個套接字過程傳送信息包。 提供一個數(shù)據被接收或者大量信息包被順序接收的保證。 一個可靠的和有次序的流協(xié)議。程序員在 接字上輸入和輸出,作為一個來自終端或文件的字節(jié)流出現(xiàn)。如果 據在一個合理的 時間內不能被成功傳送,將會顯示一個錯誤。由于在 涉及比較少的開頭部分,如果有次序收到數(shù)據非常重要,程序也就必須更加復雜。 兩個過程之間的套接字連接是兩臺主機 /端口對之間的連接,端口號指示了提供的特殊服務。許多經 接字的服務通常提供一個可識別的首字母縮寫詞:像 簡單郵件傳輸協(xié)議 , 用于電子郵件的傳輸), 絡新聞傳輸協(xié)議 (和 文件傳送 [輸 ]協(xié)議)。 于遠程聯(lián)接服務的標準協(xié)議或者實現(xiàn)此協(xié)議的軟件)是另外的套接字服務。 供了一種機制,憑借著提供服務的名字能夠譯出端口號。 ● 套接字的優(yōu)勢 數(shù)據通信實驗中利用套接字編程的一個明顯的缺點是沒有像 連續(xù)端口那樣多的直接硬件交互。然而,多數(shù)大學生不會處在這樣詳細的知識會很重要的情形中。即使有連續(xù)的端口,這個概念對許多學生來說仍然很抽象?;谔捉幼植襟E地優(yōu)勢是它將套接字的抽 象變得很具體。 在過去,基于 實驗的一個優(yōu)勢是費用的低廉。然而,至少有兩個因素來平衡這種優(yōu)勢。一是現(xiàn)在 作站普遍使用, 以通過安裝 免費版本來轉換成工作站。另一個因素是,即使 相對便宜,實際上會出現(xiàn)老化,不穩(wěn)定,機器被分配到一個像數(shù)據通信實驗這樣專注的工程。我們的經驗是我們可以負擔得起使用的機器都非常不穩(wěn)定。 雖然套接字編程的“高起點”的本性已經作為一個優(yōu)勢強調了,但使得分配像我們所希望的那樣詳細同樣是可能的。沒有任何軟件支持的套接字編程需要大量“低起點”的理解和操作。一個簡 單是修改將是基于 而不是 的分配。許多附加的程序(經環(huán)冗余碼校驗)的錯誤校驗、順序數(shù)字、接收的確認、接收錯誤的否定確認)都是必要的。無論是 是 ,適當?shù)脑O計握手機制對文件傳輸這樣的程序來說都是必要的。 通過連續(xù)的端口分配,課程時間就可以投入到作為控制、狀態(tài)、數(shù)據記錄和類似連續(xù)轉換的低起點概念中。通過一個套接字步驟,就可以討論像信息報頭、網絡和機器字節(jié)順序這樣類似的概念了。如果愿意,連續(xù)端口通信的許多適當?shù)闹黝}都可以成為套接字程序和給出的許多相同分配的必須。即使分配了高起點 的應用,學生們仍然必須理解流和緩沖區(qū)之間的不同。 北京工業(yè)大學畢業(yè)設計(譯文) 17 ● C++套接字類的優(yōu)勢 許多參考書提供了套接字通信的詳細情形,這些參考書提供了任務的例子和方法。所有建立通信、把通信轉換成緩沖區(qū)流和錯誤校驗的詳細情況都可以由 統(tǒng)調用完成。許多低起點的理解對于編寫穩(wěn)定的應用程序來說是必須的。 一個設計得很好的 C++類可以被構建用于使用簡單的語義學提供套接字的完全功能。編寫客戶到建立的服務器、事件驅動服務器和輪流檢測服務器是可能的。 作者提供了一組 C++類,這些程序都是在 編寫的。他們是由 供的。這些類對給出的任務表現(xiàn)出了非常好的功能。它的接口與輸入輸出流和提供安全類型的輸入輸出一樣。在 中有套接字流類,就像其中有管道流類一樣。套接字緩沖區(qū)類來源于流緩沖區(qū)類。這樣,學生們必須學習關于沒有套接字輸入與輸出的流和緩沖區(qū)。 套接字緩沖區(qū)類包括錯誤功能、準備好檢測、直接操作、上溢出、下溢出和超時功能。套接字選項如消息路由、局部地址的再使用、廣播等等都要設置。這樣,套接字的詳細情形就可以如 希望的那樣了。 在我們特殊的課程中,使用這些 C++類一方面的益處是學生們必須在一年級 /二年級的水平課程中使用到 C++語言,幫助他們保持學到的技能。 ● 任務 在選擇一個為期三學期的課程任務時,我們渴望實現(xiàn)很多目標。我們被希望設計出一系列的任務來讓學生編寫一個客戶端的應用、一個服務器的應用、一個對等網絡應用,也提供一些像電子郵件和文件傳輸這樣一些標準應用的經驗。另外,任務應該由簡單到復雜,循序漸進。我們在下面列出了這些任務要點。 這些任務得到了學生們的良好反響。他們感覺到了實踐的樂趣,同時,也有了一個好的 計劃。一些以前沒有接觸過它們的學生經過努力也都有非常好的結果。這五項明確的任務是: ▲ 任務一:套接字客戶端到電子郵件服務器 在本地或遠程的機器上編寫一個客戶端程序去連接電子郵件服務器,然后發(fā)送一封電子郵件到一個用戶名( 在電子郵件地址中 @符號之前的名稱)。用戶不必要是本地或遠程機器上的。例如,這個程序可能叫做 括兩項任務:主機名和用戶名。 我們要求有一個簡單的命令行接口,但是學生們可以自由地發(fā)揮,做出更多精致的電子郵件類型接口來。 簡單郵件傳輸協(xié)議 , 用于電子郵件的傳輸)的命令是一定會用到的。列舉一些如下: 北京工業(yè)大學畢業(yè)設計(譯文) 18 確認連接機器 —— 本地名稱不需要 —— 一些服務器不需要一些要包括。 發(fā)送命令列表 可以是你愿意的任何東西 —— 不經過合法性的檢驗 O: 郵件的容器 —— 不需要是本地名稱 允許信息進入 —— 以“ .”作為消息的終止字符 斷開連接 同其他的任務一樣,這個任務也會帶給學生一些不合適的活動。下面是提給學生們的一些警告: 顯然你可能在程序中做一些不禮貌的事情。例如,你可能從 里發(fā)送一串管理員的消息。這需要一些工作量,但這些消息的發(fā)送人將會被記錄。請不要熱衷于這樣幼稚的行為。 一些人可能會爭辯說這樣的任務太“危險” ,但是學生們可以學到如何操作套接字,能夠解決如何自己發(fā)送郵件的問題。我們的方法是承認這樣一個 問題的存在并提出警告。 ▲ 任務二:簡單的網絡信息服務器 編寫一個有如下特征的網絡服務器程序: 1. 從輸入套接字接受命令 2. 解釋命令并集合信息 3. 發(fā)送輸出命令到輸出套接字 你不需要為這個任務編寫一個客戶端程序,因為標準的 用于遠程聯(lián)接服務的標準協(xié)議或者實現(xiàn)此協(xié)議的軟件 ,遠程登錄)客戶端將可以提供這樣的功能。 個信息的選擇提供系統(tǒng)命令,像域名等等。系統(tǒng)的功能可以從一個 C++程序內部執(zhí)行。困難的部分是將命令 的輸出并發(fā)送輸出到套接字與客戶端連接起來。命令的輸出應該與套接字直接連接。建議有兩種途徑:用管道流類和用傳統(tǒng)的通過用戶構造管道連接的 C 來執(zhí)行系統(tǒng)功能。 ▲ 任務三:對等網絡套接字通信 編寫一個作為兩個相同程序執(zhí)行的“聊天”程序。它應該允許用戶自定義連接過程的輸出所出現(xiàn)的信息。這兩個過程經過一個套接字連接。程序將允許用戶連接一個確定的過程并監(jiān)聽另一個試圖連接的處理。 兩臺機器上運行相同的程序,任務必須包括這些要點:監(jiān)聽的超時、通過服務器程序創(chuàng)建子進程、關閉套接字并終止子進程。一個有限狀態(tài)過渡模 型應該呈現(xiàn)出來幫助程序的設計。 ▲ 任務四:文件傳輸 —— 服務器和客戶端 北京工業(yè)大學畢業(yè)設計(譯文) 19 通過 P 網絡套接字連接編寫一個文件傳輸程序。 第一個程序應該與一個 務器功能相同。它應該在幕后運行并等待一個指定端口的連接。第二個程序應該與一個 戶端功能相同。因此,需要一個用戶接口。命令將通過響應進入并發(fā)送到服務器。文件應該可以進行雙向傳輸。 客戶端程序應該通過響應行為接受下列命令: 服務器上文件列表 從客戶端到服務器傳送文件 從服務器到客戶端傳送文件 斷開與服務器的連接 : 在客戶端執(zhí)行 這對服務器 /客戶端的性能比 簡單許多。 單文件傳輸協(xié)議)與它類似。舉例來說, 用 2 個 接,其中一個類似 接用于控制,另一個作數(shù)據傳輸。 一個簡單的 接并提供用戶訪問控制,目錄列表和變更,文件重命名和文件刪除。對于這些命令,這里只有目錄列表是需要的。 樣支持 個任務需要一個握手協(xié)議。 ▲ 任務五:三個選擇 任務五 A:使用 件傳輸 建立 接字而不是 接字執(zhí)行任務 4 的文件傳輸程序。這個程序需要: ⊙ 集合數(shù)據包 ⊙ 提供 誤校驗 ⊙ 提供包的先后順序 數(shù)據包可能不是按照順序到達,可能重復或丟失,需要重新請求或重新排列。每個數(shù)據包應該被確認(肯定地或否定地)。我們將采用一個協(xié)議來描述數(shù)據包的格式和錯誤信息等等。為了測驗使用的協(xié)議,允許用戶指定傳輸中將會出錯的部分。 任務五 B:雙向文件傳輸 改為打開 2 個套接字執(zhí)行任 務 4 的文件傳輸程序,一個用于控制信息一個用于數(shù)據傳輸。另外,允許兩個程序同時來回地發(fā)送文件,通過控制信道取消傳送過程。使用多個子進程將是有益的。(一個有限狀態(tài)機器將會是一個好方法)。 著相似的工作方式。它有兩個套接字連接,但是基于不同的原因,因為在這里它執(zhí)行的是一個真正的服務器 —— 客戶端協(xié)議,而不是對等網絡協(xié)議。 北京工業(yè)大學畢業(yè)設計(譯文) 20 ▲ 任務五 C:多用戶聊天程序 任務三涉及了對等網絡聊天程序。這個任務需要多路技術創(chuàng)造聊天服務器的程序,它能夠把握多重的套接字連接。沒有必要編寫客戶端程序因為可以使用 服 務器可以從任何套接字接受輸入行并把它們輸出到剩余的套接字連接。當一個用戶連接到聊天服務器,服務器應該及時提供一個用戶名。這個名字應該被廣播到其余的用戶。在用戶離開時同樣要廣播一條消息。當一個用戶的消息被發(fā)送到其它連接的用戶時,應提供用戶名以供辨認。 ● 結論 重新設計數(shù)據通信課程實驗內容的目的是提供這樣的一些任務: ⊙ 給學生們更有意義和更實際的內容 ⊙ 更另人愉快的,因此也能更好完成的內容 ⊙ 更現(xiàn)代,但仍然強調對所發(fā)生內容的理解而不僅僅是利用數(shù)據通信 ⊙ 循序漸進,環(huán)環(huán)相扣 ⊙ 基于更加可靠的硬件,丟 棄了以前使用的 一旦這個套接字范例被選用,目的在于創(chuàng)造一些任務需要學生編寫這樣的代碼: ⊙ 利用 C++類 ⊙ 提供一個簡單的客戶端有權使用定義明確的服務器 ⊙ 提供簡單的服務器功能 ⊙ 提供對等網絡通信 ⊙ 提供多路技術服務器功能 ⊙ 通過一種方式實現(xiàn)一個類似于眾所周知網絡服務的功能 ⊙ 需要學生們關注可靠通信 ⊙ 使用一些 形態(tài)并進行進程間通信編程 這些任務在學生們中得到了非常好的反響。好學生發(fā)現(xiàn)通過設計好的用戶接口或提供增加功能性來增強計劃的方法?;A不是很好的學生能夠完成任務并發(fā)現(xiàn) 它們同樣有意義和有趣。作者在一所小的自由技術大學教授電腦科學的二十年中,這種實驗任務的變化就像其它任何一門課程的變化一樣地被接受了。- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- 外文 翻譯 socket 通信 數(shù)據通信 實驗 中的 套接 編程 中文版
裝配圖網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
鏈接地址:http://m.appdesigncorp.com/p-31490.html