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