c#高級(jí)網(wǎng)絡(luò)程序的設(shè)計(jì)課后答案_第1頁(yè)
c#高級(jí)網(wǎng)絡(luò)程序的設(shè)計(jì)課后答案_第2頁(yè)
c#高級(jí)網(wǎng)絡(luò)程序的設(shè)計(jì)課后答案_第3頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余8頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1 簡(jiǎn)述分散式、集中式和分布式通信模型的特點(diǎn)?!緟⒖冀獯稹糠稚⑹剑焊髯元?dú)立的系統(tǒng)之間沒(méi)有資源或信息的交換或共享。存在大量數(shù)據(jù)冗余且維護(hù) 成本高,已被淘汰。集中式:數(shù)據(jù)和管理功能都集中在單臺(tái)計(jì)算機(jī)上,用戶(hù)僅能通過(guò)終端來(lái)操作。優(yōu)點(diǎn)是硬 件成本低、無(wú)冗余和不一致性問(wèn)題,缺點(diǎn)是可靠性和靈活性低,反應(yīng)慢。分布式:是分散式系統(tǒng)和集中式系統(tǒng)的混合體,是目前比較完善的解決方案。2 .簡(jiǎn)述C/S和B/S的優(yōu)缺點(diǎn)?!緟⒖冀獯稹緾/S是一種胖客戶(hù)端應(yīng)用程序編程架構(gòu),其主要工作都在客戶(hù)端運(yùn)行。優(yōu)點(diǎn)是可以充分 利用本地計(jì)算機(jī)的性能優(yōu)勢(shì),缺點(diǎn)是需要在本機(jī)安裝客戶(hù)端軟件。B/S使用HTTP進(jìn)行通信。優(yōu)點(diǎn)是單臺(tái)計(jì)算機(jī)可以訪問(wèn)

2、任何Web服務(wù)器,缺點(diǎn)是 B/S模式有沙盒限制。3 .什么是套接字?套接字有哪幾種類(lèi)型?【參考解答】套接字是支持TCP/IP網(wǎng)絡(luò)通信的基本操作單元,是不同主機(jī)間的進(jìn)程進(jìn)行通信的端點(diǎn)。在一個(gè)套接字實(shí)例中,既保存了本機(jī)的IP地址和端口,也保存了對(duì)方的IP地址和端口,同時(shí)也保存了雙方通信采用的網(wǎng)絡(luò)協(xié)議等信息。套接字有3種類(lèi)型:流式套接字、數(shù)據(jù)報(bào)套接字和原始套接字。1簡(jiǎn)要回答下列問(wèn)題。(1) 進(jìn)程和線程有什么區(qū)別?為什么要用多線程?多線程適用于哪種場(chǎng)合?(2) 前臺(tái)線程和后臺(tái)線程有什么區(qū)別和聯(lián)系?如何判斷一個(gè)線程屬于前臺(tái)線程還是 后臺(tái)線程?如何將一個(gè)線程設(shè)置為后臺(tái)線程?【參考解答】(1) 進(jìn)程是正在執(zhí)

3、行的程序,線程是某個(gè)進(jìn)程中的一個(gè)或多個(gè)執(zhí)行流。多線程可讓多個(gè)任務(wù)同時(shí)執(zhí)行。當(dāng)執(zhí)行需要較長(zhǎng)時(shí)間才能完成的連續(xù)操作時(shí),或者等待網(wǎng)絡(luò)或其他I/O設(shè)備相應(yīng)時(shí),都可以使用多線程技術(shù)。(2) 個(gè)線程要么是前臺(tái)線程要么是后臺(tái)線程。兩者的區(qū)別是:后臺(tái)線程不會(huì)影響進(jìn)程 的終止,而前臺(tái)線程則會(huì)影響進(jìn)程的終止。2什么是同步?為什么需要同步?C#提供了什么語(yǔ)句可以簡(jiǎn)單地實(shí)現(xiàn)代碼同步?【參考解答】執(zhí)行某語(yǔ)句時(shí),在該語(yǔ)句完成之前不會(huì)執(zhí)行其后面的代碼,這種執(zhí)行方式稱(chēng)為同步執(zhí)行。當(dāng)并行執(zhí)行的多個(gè)線程同時(shí)訪問(wèn)某些資源時(shí),必須考慮如何讓多個(gè)線程保持同步。同步的目 的是為了防止多個(gè)線程同時(shí)訪問(wèn)某些資源時(shí)出現(xiàn)死鎖和爭(zhēng)用情況。C#提供

4、的lock語(yǔ)句可以簡(jiǎn)單地實(shí)現(xiàn)代碼同步。3 什么是線程池?使用線程池有什么好處?【參考解答】線程池是在后臺(tái)執(zhí)行任務(wù)的線程集合,好處有:如當(dāng)某個(gè)線程無(wú)法進(jìn)入線程池執(zhí)行時(shí)先 將其放入等待隊(duì)列,自動(dòng)決定用哪個(gè)處理器執(zhí)行線程池中的某個(gè)線程,自動(dòng)調(diào)節(jié)這些線程執(zhí) 行時(shí)的負(fù)載平衡問(wèn)題等。 另外,線程池總是在后臺(tái)異步處理請(qǐng)求的任務(wù),而不會(huì)占用主線程,也不會(huì)延遲主線程中后續(xù)請(qǐng)求的處理。4應(yīng)用程序域和進(jìn)程有什么區(qū)別和聯(lián)系?【參考解答】一個(gè)進(jìn)程既可以只包含一個(gè)應(yīng)用程序域,也可以同時(shí)包含多個(gè)相互隔離的應(yīng)用程序域。 多進(jìn)程是在操作系統(tǒng)級(jí)別使用的功能,資源消耗較大,細(xì)節(jié)控制復(fù)雜;應(yīng)用程序域是在應(yīng)用 程序級(jí)別使用的功能,比直

5、接用多進(jìn)程來(lái)實(shí)現(xiàn)進(jìn)程管理速度快、資源消耗少而且更安全,是 輕量級(jí)的進(jìn)程管理。1 什么是編碼?什么是解碼?為什么要對(duì)字符進(jìn)行編碼和解碼?.NET框架提供了哪些用于字符編碼和解碼的類(lèi)?【參考解答】將字符序列轉(zhuǎn)換為字節(jié)序列的過(guò)程稱(chēng)為編碼;當(dāng)這些字節(jié)傳送到網(wǎng)絡(luò)的接收方時(shí),接收 方再將字節(jié)序列轉(zhuǎn)換為字符序列,這種過(guò)程稱(chēng)為解碼。在網(wǎng)絡(luò)通信中,很多情況下通信雙方傳達(dá)的都是字符信息。但是,字符信息并不能直接 從網(wǎng)絡(luò)的一端傳遞到另一端,這些字符信息首先需要被轉(zhuǎn)換成一個(gè)字節(jié)序列,然后才能在網(wǎng) 絡(luò)中傳輸。因此,發(fā)送方需要進(jìn)行編碼,相應(yīng)的接收方就要執(zhí)行解碼。.NET框架中一般常用 Encoding類(lèi)實(shí)現(xiàn)編碼和解碼。E

6、ncoding類(lèi)位于System.Text命名空 間下,該類(lèi)主要用于對(duì)字符集進(jìn)行編碼和解碼以及將一種編碼格式轉(zhuǎn)換為另一種編碼格式。如果有更詳細(xì)的需求可以還使用與Encoding類(lèi)位于同一命名空間下的Encoder和Decoder類(lèi)來(lái)進(jìn)行編碼和解碼。2 .NET提供的從Stream類(lèi)繼承的數(shù)據(jù)流都有哪些?【參考解答】文件流(FileStream)、存流( Memorystream )、網(wǎng)絡(luò)流( Networkstream )加密流(CryptoStream )。3 簡(jiǎn)述對(duì)稱(chēng)加密和不對(duì)稱(chēng)加密的特點(diǎn)及實(shí)現(xiàn)原理。【參考解答】對(duì)稱(chēng)加密:(1)加密和解密數(shù)據(jù)使用同一個(gè)密鑰;(2)私鑰算法以塊為單位加密數(shù)據(jù)

7、,一次加密一個(gè)數(shù)據(jù)塊,因此支持?jǐn)?shù)據(jù)流。對(duì)稱(chēng)加密算法的優(yōu)點(diǎn):強(qiáng)度高,加、解密速度快,適合加密大量數(shù)據(jù)。對(duì)稱(chēng)加密的缺點(diǎn):通信雙方使用相同的密鑰和IV加密和解密,發(fā)送方需要先將密鑰和IV傳遞給接收方。如果攻擊者截獲了密鑰和IV ,也就等于知道了如何解密數(shù)據(jù)。不對(duì)稱(chēng)加密:(1)使用一個(gè)需要的私鑰和一個(gè)可以對(duì)任何人公開(kāi)的公鑰。用公鑰加密的數(shù)據(jù)只能用私鑰解密,反之,用私鑰加密的數(shù)據(jù)只能用公鑰解密;(2 )私鑰加密算法使用長(zhǎng)度可變的緩沖區(qū),因此無(wú)法使用流。不對(duì)稱(chēng)加密的優(yōu)點(diǎn):更不容易被攻擊。不對(duì)稱(chēng)加密的缺點(diǎn):由于無(wú)法使用流,因此不適合加密大量數(shù)據(jù)。4 .什么是數(shù)字簽名?數(shù)字簽名有什么用途?【參考解答】在應(yīng)用程

8、序中,可以利用數(shù)字簽名實(shí)現(xiàn)數(shù)據(jù)身份驗(yàn)證和數(shù)據(jù)完整性驗(yàn)證。數(shù)據(jù)身份驗(yàn)證 是為了驗(yàn)證數(shù)據(jù)是不是持有私鑰的人發(fā)送的;數(shù)據(jù)完整性驗(yàn)證則用于驗(yàn)證數(shù)據(jù)在傳輸過(guò)程中是否被修改過(guò)。數(shù)字簽名的用途:通過(guò)In ternet下載文件后,驗(yàn)證下載的文件是否和原始文件完全相同。 換言之,如果通信雙方希望確保信息是來(lái)自對(duì)方而不是來(lái)自第三方,需要使用數(shù)字簽名進(jìn)行 身份驗(yàn)證。另外,數(shù)字簽名還可以防止特定一方否認(rèn)曾發(fā)送過(guò)的信息。第5章1僅包含async和await關(guān)鍵字的異步方法與用Task.Run調(diào)用的異步方法有和不同?【參考解答】async和await關(guān)鍵字是C# 5.0提供的功能,僅包含 async和await關(guān)鍵字的異

9、步方法不 會(huì)創(chuàng)建新線程,它只是表示在當(dāng)前線程中異步執(zhí)行指定的任務(wù)。而Task.Run方法是.NET框架4.5提供的功能,它會(huì)在線程池中用單獨(dú)的線程執(zhí)行某個(gè)任務(wù)。2 把普通方法和異步方法作為任務(wù)來(lái)執(zhí)行時(shí),調(diào)用方法有何不同?【參考解答】普通方法要用 Task.Run方法去調(diào)用,或者用Task、Task<TResult>類(lèi)的構(gòu)造函數(shù)顯示創(chuàng)建Task實(shí)例,然后再啟動(dòng)。異步方法不需要用Task.Run方法去調(diào)用。3. Action和Func委托有什么不同?【參考解答】Action委托封裝了不帶返回值的方法(有016個(gè)輸入?yún)?shù),返回類(lèi)型為void ) , Func委托封裝了帶返回值的方法(有0

10、16個(gè)輸入?yún)?shù),返回類(lèi)型為T(mén)Result)。4. 有幾種創(chuàng)建任務(wù)的方式?【參考解答】有4種方式。(1) 利用Task.Run方法隱式創(chuàng)建和執(zhí)行任務(wù);(2) 利用async和await關(guān)鍵字隱式創(chuàng)建異步任務(wù);(3) 利用WPF控件的調(diào)度器隱式創(chuàng)建和執(zhí)行任務(wù);(4) 通過(guò)顯式調(diào)用 Task或Task<TResult>的構(gòu)造函數(shù)創(chuàng)建任務(wù)。5. 在WPF應(yīng)用程序中有幾種可用的定時(shí)器?【參考解答】有3種。(1) System.Timers.Timer 類(lèi);(2) System.Windows.Threading.DispatcherTimer 類(lèi);(3) System.Threading.T

11、imer 類(lèi)。6. 簡(jiǎn)述實(shí)現(xiàn)任務(wù)的取消功能的機(jī)制?!緟⒖冀獯稹縎ystem.Threading.CancellationTokenSource 用于創(chuàng)建取消通知,稱(chēng)為取消源。結(jié)構(gòu)用于傳播應(yīng)取消操作的通知,稱(chēng)為取消令牌。調(diào)用任務(wù)的代碼在分配任務(wù)前,可先用CancellationTokenSource類(lèi)創(chuàng)建一個(gè)取消源。在調(diào)用任務(wù)的代碼中, 可通過(guò)取消源的 Cancel方法發(fā)出取消通知, 該方法會(huì)將每個(gè)取消令牌副 本上的 IsCa ncellati on Requested 屬性都設(shè)置為 true。執(zhí)行任務(wù)的方法接收到取消通知后,可以終止執(zhí)行。第6章1 . TPL支持哪些并行方式?【參考解答】TPL

12、支持?jǐn)?shù)據(jù)并行,任務(wù)并行和并行查詢(xún)(PLINQ )。2 并行編程中的分區(qū)有哪些形式?【參考解答】按圍分區(qū);按區(qū)塊分區(qū);動(dòng)態(tài)分區(qū);自定義分區(qū)。3 簡(jiǎn)述Parallel幫助器類(lèi)有哪些?功能分別是什么?【參考解答】幫助器類(lèi)包括 ParallelOptions、ParallelLoopState、ParallelLoopResult、CancellationToken 禾口 CancellationTokenSource。ParallelOptio ns類(lèi)用于為Parallel類(lèi)的方法提供操作選項(xiàng),常用屬性有:Ca ncellati on Token、 MaxDegreeOfParallelism、Ta

13、skScheduler。ParallelLoopState類(lèi)用于將 Parallel循環(huán)的迭代與其他迭代交互。常用屬性和方法有: IsExceptional 屬性、IsStopped 屬性、Break 方法、Stop 方法。ParallelLoopResult類(lèi)用于提供 Parallel循環(huán)的完成狀態(tài),常用屬性有:IsCompleted、LowestBreakIteration 。CancellationTokenSource用于創(chuàng)建取消通知,稱(chēng)為取消源。CancellationToken結(jié)構(gòu)用于傳播應(yīng)取消操作的通知,稱(chēng)為取消令牌。4 常用的并發(fā)集合類(lèi)有幾種?【參考解答】Con curre n

14、tBag<T>Con curre ntQueue<T>Con curre ntStack<T>ConcurrentDictionary<TKey, TValue> 。5 .使用Parallel.Invoke方法時(shí),為了能讓 Action與WPF界面交互,要注意什么問(wèn)題?【參考解答】WPF當(dāng)前不能使用默認(rèn)的任務(wù)調(diào)度程序,而是通過(guò)設(shè)置并行選項(xiàng),將任務(wù)調(diào)度程序與 同步上下文關(guān)聯(lián)起來(lái),相關(guān)代碼如下。ParallelOpti ons opti ons = new ParallelOpti on s();opti on s.TaskScheduler = T

15、askScheduler.FromCurre ntSynchroni zati onCon text();第7章1 簡(jiǎn)要介紹 Web服務(wù)和 WCF有哪些區(qū)別和聯(lián)系。【參考解答】Web服務(wù)是一種以XML作為數(shù)據(jù)交換格式、部署在Web服務(wù)器上的一種應(yīng)用程序服務(wù), 在Web服務(wù)中,可公開(kāi)被各種客戶(hù)端程序調(diào)用的方法。WCF是微軟公司推出的符合 SOA思想的分布式應(yīng)用程序技術(shù)框架和編程模型,是建立 在消息通信這一概念基礎(chǔ)之上的一個(gè)運(yùn)行時(shí)服務(wù)系統(tǒng)。Web服務(wù)只是 WCF的其中一部分,除了 Web服務(wù)外,WCF還包括其他各種服務(wù)。2 簡(jiǎn)要介紹 WCF服務(wù)的承載方式及其特點(diǎn)?!緟⒖冀獯稹縒CF服務(wù)的承載方式包

16、括:利用IIS或者WAS承載、利用Windows服務(wù)承載、自承載。其特點(diǎn)如下。(1) 用IIS或者WAS承載:這是最常用的一種承載方式,特點(diǎn)是部署簡(jiǎn)單,方便。(2) 用 Windows服務(wù)承載:用【W(wǎng)CF服務(wù)庫(kù)】模板創(chuàng)建的 WCF服務(wù)利用 Windows進(jìn) 程去承載。(3) 自承載:指開(kāi)發(fā)人員自己編寫(xiě)代碼實(shí)現(xiàn)承載WCF的工作。優(yōu)點(diǎn)是實(shí)現(xiàn)靈活,需要 的環(huán)境支持最小。缺點(diǎn)是高級(jí)宿主管理功能需要自己寫(xiě)代碼去實(shí)現(xiàn)。3什么是服務(wù)協(xié)定,什么是數(shù)據(jù)協(xié)定,分別用哪些特性聲明服務(wù)協(xié)定和數(shù)據(jù)協(xié)定?【參考解答】服務(wù)協(xié)定是指 WCF對(duì)客戶(hù)端公開(kāi)哪些服務(wù)。WCF服務(wù)端通過(guò)服務(wù)協(xié)定向客戶(hù)端公開(kāi)以下容:操作方法、消息交換模

17、式、采用的通信協(xié)議以及序列化格式。服務(wù)協(xié)定用ServiceC on tract 特性和OperationContract特性來(lái)共同聲明。數(shù)據(jù)協(xié)定描述的是消息中包含哪些數(shù)據(jù),即規(guī)定哪些數(shù)據(jù)能夠被序列化為XML傳輸?shù)娇蛻?hù)端。數(shù)據(jù)協(xié)定用 DataC on tract特性和DataMember特性來(lái)共同聲明。1. 編寫(xiě)基于C/S的HTTP應(yīng)用程序時(shí),有哪幾種實(shí)現(xiàn)技術(shù)?各自的特點(diǎn)是什么?【參考解答】(1) .用可插接式協(xié)議實(shí)現(xiàn)可插接式協(xié)議用 WebRequest類(lèi)和 WebResponse類(lèi)來(lái)實(shí)現(xiàn)。這兩個(gè)類(lèi)是各種與具體的通 信協(xié)議相關(guān)的類(lèi)的基類(lèi),提供了上傳、下載等基本方法。或者說(shuō),不論采用的是哪種通信協(xié)

18、 議,都可以用這兩個(gè)對(duì)來(lái)實(shí)現(xiàn)。(2) .用 HttpWebRequest 和 HttpWebResponse 實(shí)現(xiàn)HttpWebRequest 類(lèi)和 HttpWebResponse 類(lèi)是針對(duì) HTTP 而提供的,分別從 WebRequest 類(lèi)和WebResponse類(lèi)繼承而來(lái)。(3) .用WCF實(shí)現(xiàn)用WCF和基于任務(wù)的編程模型實(shí)現(xiàn)HTTP應(yīng)用編程是面向服務(wù)編程中建議的做法。前兩種方式都是傳統(tǒng)的編程模型,在實(shí)際項(xiàng)目中,如果用傳統(tǒng)的編程模型來(lái)實(shí)現(xiàn),除了業(yè)務(wù)處理之外,很多細(xì)節(jié)也都需要程序員自己去完成, 例如負(fù)載平衡、網(wǎng)絡(luò)監(jiān)視、安全管理、 防攻擊等。而用 WCF來(lái)實(shí)現(xiàn),程序員只需要處理業(yè)務(wù)邏輯即可,

19、 其他工作讓 WCF部去完成 就行了。2 . WCF客戶(hù)端和服務(wù)端的消息交換模式有哪些?【參考解答】請(qǐng)求/應(yīng)答模式、單向模式、雙工模式。第9章1 . TCP有哪些主要特點(diǎn)?【參考解答】(1) 一對(duì)一通信。一旦通信雙方建立了 TCP連接,連接中的任何一方都能向?qū)Ψ桨l(fā)送數(shù)據(jù)和接收對(duì)方發(fā)送來(lái)的數(shù)據(jù)。每個(gè)TCP連接只能有兩個(gè)端點(diǎn),而且只能一對(duì)一通信。(2) 安全順序傳輸。通過(guò) TCP連接傳送的數(shù)據(jù),能保證數(shù)據(jù)無(wú)差錯(cuò)、不丟失、不重復(fù)地 準(zhǔn)確到達(dá)接收方,并且保證各數(shù)據(jù)到達(dá)的順序與數(shù)據(jù)發(fā)出的順序相同。(3) 通過(guò)字節(jié)流發(fā)送數(shù)據(jù)。利用TCP傳輸數(shù)據(jù)時(shí),數(shù)據(jù)以字節(jié)流的形式進(jìn)行傳輸。(4) 傳輸?shù)臄?shù)據(jù)無(wú)消息邊界。

20、2 .解決TCP的無(wú)消息邊界問(wèn)題有哪些常用的辦法?【參考解答】(1) 發(fā)送固定長(zhǎng)度的消息。(2) 將消息長(zhǎng)度與消息一起發(fā)送。(3) 使用特殊標(biāo)記分隔消息。3 .簡(jiǎn)述基于任務(wù)的異步 TCP編程和直接用Thread實(shí)現(xiàn)的主要區(qū)別?!緟⒖冀獯稹恐苯佑肨hread來(lái)實(shí)現(xiàn)TCP編程時(shí),是以多線程為目標(biāo)來(lái)實(shí)現(xiàn)的,需要開(kāi)發(fā)人員自己管理多線程,因此開(kāi)發(fā)人員必須熟練掌握多線程實(shí)現(xiàn)的所有細(xì)節(jié),才能編寫(xiě)出實(shí)際的 TCP應(yīng)用程序。而基于任務(wù)的異步 TCP編程是通過(guò)任務(wù)來(lái)實(shí)現(xiàn) TCP編程,用多任務(wù)實(shí)現(xiàn)時(shí),即使開(kāi) 發(fā)人員對(duì)多線程、線程池以及資源沖突和負(fù)載平衡等所有技術(shù)實(shí)現(xiàn)細(xì)節(jié)不太熟悉,一樣可以 快速編寫(xiě)出實(shí)際的 TCP應(yīng)

21、用程序,而且程序的健壯性比直接用多線程來(lái)實(shí)現(xiàn)要高得多。4.簡(jiǎn)要回答用 WCF編寫(xiě)TCP服務(wù)器端和客戶(hù)端程序的一般步驟?!緟⒖冀獯稹渴褂肳CF編寫(xiě)TCP服務(wù)器端應(yīng)用程序的一般步驟如下。1) 創(chuàng)建一個(gè) WPF應(yīng)用程序,在項(xiàng)目中添加 WCF服務(wù)。2) 在WCF服務(wù)接口文件中定義服務(wù)端與客戶(hù)端通信的協(xié)定,并實(shí)現(xiàn)定義在服務(wù)端需要實(shí)現(xiàn)的協(xié)定方法。3) 修改服務(wù)端配置文件,并啟動(dòng) WCF服務(wù),等待客戶(hù)端調(diào)用并與客戶(hù)端通信。4) 根據(jù)實(shí)際情況確定是否關(guān)閉 WCF服務(wù)。使用WCF編寫(xiě)TCP客戶(hù)端端應(yīng)用程序的一般步驟如下。1) 創(chuàng)建一個(gè) WPF應(yīng)用程序,添加服務(wù)引用。2) 實(shí)現(xiàn)WCF服務(wù)定義在客戶(hù)端需要實(shí)現(xiàn)的協(xié)定

22、方法。3) 調(diào)用WCF服務(wù),與服務(wù)端進(jìn)行通信。第10章1. UDP和TCP的主要區(qū)別有哪些?【參考解答】UDP是簡(jiǎn)單的、面向數(shù)據(jù)報(bào)的無(wú)連接協(xié)議,提供了快速但不一定可靠的傳輸服務(wù)。與TCP 一樣,UDP也是構(gòu)建于底層IP協(xié)議之上的傳輸層協(xié)議。與 TCP相比,UDP具有以下特 點(diǎn)。(1) UDP不但支持一對(duì)一通信,而且支持一對(duì)多通信。(2) UDP傳輸速度比TCP快。(3) UDP有消息邊界,使用 UDP不需要考慮消息邊界問(wèn)題。(4) UDP不確保數(shù)據(jù)的發(fā)送順序和接收順序一致。(5) UDP可靠性不如 TCP。2. 什么是廣播?什么是多路廣播??jī)烧哂惺裁磪^(qū)別?【參考解答】廣播是指同時(shí)向多個(gè)設(shè)備發(fā)送

23、消息,并且所有子網(wǎng)中的設(shè)備都可以接收到發(fā)送方發(fā)來(lái)的消息。每個(gè)廣播消息包含一個(gè)特殊的IP地址。廣播消息地址分為兩種類(lèi)型:本地廣播和全球廣播。本地廣播可以向子網(wǎng)中的所有設(shè)備發(fā)送廣播消息,其他網(wǎng)絡(luò)不會(huì)受到本地廣播的影響。多路廣播是將消息從一臺(tái)設(shè)備發(fā)送到本網(wǎng)或全網(wǎng)選擇的設(shè)備子集上,即發(fā)送到那些加入 指定組播組的設(shè)備上。二者區(qū)別:廣播只能向其所在的子網(wǎng)發(fā)送消息,而且是向子網(wǎng)中的所有設(shè)備發(fā)送消息, 沒(méi)有目的性,不但造成了網(wǎng)絡(luò)負(fù)載,而且資源消耗較高。而多路廣播是將消息發(fā)送到加入到 特定組播組的機(jī)器上,消息有目的性,資源消耗不高。3 .簡(jiǎn)要回答利用 UdpCIient對(duì)象加入和退出多播組的步驟?!緟⒖冀獯稹吭?/p>

24、UDP協(xié)議中,廣播和組播的實(shí)現(xiàn)都是借助于特殊的IP地址實(shí)現(xiàn)的。特別是組播比較特殊。對(duì)于IPv4來(lái)說(shuō),多播是指在 到的D類(lèi)IP地址圍進(jìn)行廣播。加入多播組時(shí),首選創(chuàng)建UdpCIient對(duì)象,然后使用JoinMutiCastGroup方法加入組播組。 當(dāng)退出組播組時(shí),使用UdpCIient對(duì)象的DropMulticastGroup方法可以退出多播組,參數(shù)中指出要退出多播組的IPAddress對(duì)象。4.簡(jiǎn)要回答用 WCF和UDP編寫(xiě)多播程序與用 UdpCIient類(lèi)編寫(xiě)多播程序有哪些主要的 不同點(diǎn)?這兩種實(shí)現(xiàn)方式中,各自的優(yōu)缺點(diǎn)有哪些?【參考解答】使用UDP編寫(xiě)多播程序時(shí),均需要將消息發(fā)送到特殊的IP

25、地址。使用UdpCIient類(lèi)編寫(xiě)多播程序時(shí),需要先加入到特定的多播組,然后才能接收來(lái)自多播發(fā)送端發(fā)送的數(shù)據(jù)。具 體實(shí)現(xiàn)時(shí)主要是利用UdpCIient類(lèi)的JoinMutiCastGroup方法加入組播組,發(fā)送端利用UdpCIient對(duì)象的Send方法發(fā)送數(shù)據(jù)到組播地址,接收端利用UdpCIient對(duì)象的Receive方法接收數(shù)據(jù)。若要退出組播組調(diào)用DropMulticastGroup方法即可。使用WCF和UDP編寫(xiě)多播程序時(shí),需要使用WCF服務(wù)定義和實(shí)現(xiàn)通信的協(xié)定,然后向組播地址發(fā)送消息,這樣凡是實(shí)現(xiàn)WCF服務(wù)定義和實(shí)現(xiàn)通信協(xié)定的客戶(hù)端均可以接收到消息。使用UdpCIient類(lèi)實(shí)現(xiàn)時(shí),主要借助多線程和多任務(wù)來(lái)實(shí)現(xiàn),易于理解,但是需要考慮 較

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論