ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:24.22KB ,
资源ID:9753769      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9753769.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c高级网络程序设计课后答案.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

c高级网络程序设计课后答案.docx

1、c高级网络程序设计课后答案第1章1.简述分散式、集中式与分布式通信模型的特点。【参考解答】分散式 :各自独立的系统之间没有资源或信息的交换或共享。 存在大量数据冗余且维护成本高 ,已被淘汰。集中式 :数据与管理功能都集中在单台计算机上 ,用户仅能通过终端来操作。优点就是硬 件成本低、无冗余与不一致性问题 ,缺点就是可靠性与灵活性低 ,反应慢。分布式 :就是分散式系统与集中式系统的混合体 ,就是目前比较完善的解决方案。2简述C/S与B/S的优缺点。【参考解答】C/S 就是一种胖客户端应用程序编程架构 ,其主要工作都在客户端运行。优点就是可以充 分利用本地计算机的性能优势 ,缺点就是需要在本机安装

2、客户端软件。B/S使用HTTP进行通信。优点就是单台计算机可以访问任何 Web服务器,缺点就是B/S模式有沙盒限制。3.什么就是套接字?套接字有哪几种类型?【参考解答】套接字就是支持 TCP/IP 网络通信的基本操作单元 ,就是不同主机间的进程进行通信的端 点。在一个套接字实例中 ,既保存了本机的 IP 地址与端口 ,也保存了对方的 IP 地址与端口 ,同 时也保存了双方通信采用的网络协议等信息。套接字有 3 种类型 : 流式套接字、数据报套接字与原始套接字。第3章1.简要回答下列问题。(1)进程与线程有什么区别?为什么要用多线程?多线程适用于哪种场合?(2)前台线程与后台线程有什么区别与联系

3、?如何判断一个线程属于前台线程还就是 后台线程?如何将一个线程设置为后台线程?【参考解答】(1)进程就是正在执行的程序 ,线程就是某个进程中的一个或多个执行流。 多线程可让多个 任务同时执行。当执行需要较长时间才能完成的连续操作时 ,或者等待网络或其她 I/O 设备相 应时 ,都可以使用多线程技术。(2)一个线程要么就是前台线程要么就是后台线程。 两者的区别就是 :后台线程不会影响进 程的终止 ,而前台线程则会影响进程的终止。2什么就是同步?为什么需要同步? C#提供了什么语句可以简单地实现代码同步? 【参考解答】执行某语句时 ,在该语句完成之前不会执行其后面的代码 ,这种执行方式称为同步执行

4、。 当并行执行的多个线程同时访问某些资源时 ,必须考虑如何让多个线程保持同步。 同步的目的 就是为了防止多个线程同时访问某些资源时出现死锁与争用情况。 C#提供的lock语句可以简单地实现代码同步。3.什么就是线程池?使用线程池有什么好处?【参考解答】线程池就是在后台执行任务的线程集合 ,好处有 :如当某个线程无法进入线程池执行时先 将其放入等待队列 ,自动决定用哪个处理器执行线程池中的某个线程 ,自动调节这些线程执行时的负载平衡问题等。另外 ,线程池总就是在后台异步处理请求的任务 ,而不会占用主线程 ,也 不会延迟主线程中后续请求的处理。4.应用程序域与进程有什么区别与联系?【参考解答】 一

5、个进程既可以只包含一个应用程序域 ,也可以同时包含多个相互隔离的应用程序域。 多进程就是在操作系统级别使用的功能 ,资源消耗较大 ,细节控制复杂 ;应用程序域就是在应用程 序级别使用的功能 ,比直接用多进程来实现进程管理速度快、资源消耗少而且更安全 ,就是轻量级的进程管理。第4章1.什么就是编码?什么就是解码?为什么要对字符进行编码与解码?、 NET 框架提供了 哪些用于字符编码与解码的类?【参考解答】将字符序列转换为字节序列的过程称为编码 ; 当这些字节传送到网络的接收方时 ,接收方 再将字节序列转换为字符序列 ,这种过程称为解码。在网络通信中 ,很多情况下通信双方传达的都就是字符信息。但就

6、是 , 字符信息并不能直 接从网络的一端传递到另一端 ,这些字符信息首先需要被转换成一个字节序列 ,然后才能在网 络中传输。因此 ,发送方需要进行编码 ,相应的接收方就要执行解码。、 NET 框架中一般常用 Encoding 类实现编码与解码。 Encoding 类位于 System、 Text 命 名空间下 ,该类主要用于对字符集进行编码与解码以及将一种编码格式转换为另一种编码格 式。如果有更详细的需求可以还使用与 Encoding 类位于同一命名空间下的 Encoder 与 Decoder 类来进行编码与解码。2.、NET 提供的从 Stream 类继承的数据流都有哪些?【参考解答】文件流

7、 ()、内存流 (MemoryStream) 、网络流 (NetworkStream) 加密流 (CryptoStream) 。3.简述对称加密与不对称加密的特点及实现原理。【参考解答】对称加密 :(1)加密与解密数据使用同一个密钥 ;(2) 私钥算法以块为单位加密数据 ,一次加 密一个数据块 ,因此支持数据流。对称加密算法的优点 :保密强度高 ,加、解密速度快 ,适合加密大量数据。对称加密的缺点 :通信双方使用相同的密钥与 IV 加密与解密 ,发送方需要先将密钥与 IV 传递给接收方。如果攻击者截获了密钥与 IV, 也就等于知道了如何解密数据。不对称加密 :(1) 使用一个需要保密的私钥与一

8、个可以对任何人公开的公钥。 用公钥加密的数据只能用私钥解密 ,反之 ,用私钥加密的数据只能用公钥解密 ;(2)私钥加密算法使用长度可变 的缓冲区 ,因此无法使用流。不对称加密的优点 : 更不容易被攻击。不对称加密的缺点 : 由于无法使用流 ,因此不适合加密大量数据。4.什么就是数字签名?数字签名有什么用途?【参考解答】在应用程序中 ,可以利用数字签名实现数据身份验证与数据完整性验证。 数据身份验证就是为了验证数据就是不就是持有私钥的人发送的 ; 数据完整性验证则用于验证数据在传输过程中就是否被修改过。数字签名的用途 :通过 Internet 下载文件后 ,验证下载的文件就是否与原始文件完全相同

9、。 换言之 ,如果通信双方希望确保信息就是来自对方而不就是来自第三方 ,需要使用数字签名进行身份验证。另外 ,数字签名还可以防止特定一方否认曾发送过的信息。第5章1.仅包含 asynC 与 await 关键字的异步方法与用 Task、 Run 调用的异步方法有与不同? 【参考解答】async与await关键字就是 C# 5、0提供的功能,仅包含async与await关键字的异步方法 不会创建新线程,它只就是表示在当前线程中异步执行指定的任务。而 Task、Run方法就是、NET 框架 4、 5 提供的功能 ,它会在线程池中用单独的线程执行某个任务。2.把普通方法与异步方法作为任务来执行时 ,调

10、用方法有何不同?【参考解答】普通方法要用 Task、Run方法去调用,或者用Task、Task类的构造函数显示创 建Task实例,然后再启动。异步方法不需要用 Task、Run方法去调用。3.Action 与 Func 委托有什么不同?【参考解答】Action委托封装了不带返回值的方法 (有016个输入参数,返回类型为void),Func委托封 装了带返回值的方法(有016个输入参数,返回类型为TResult)。4.有几种创建任务的方式?【参考解答】有 4 种方式。(1)利用 Task、 Run 方法隐式创建与执行任务 ;(2)利用 async 与 await 关键字隐式创建异步任务 ;(3)

11、利用 WPF 控件的调度器隐式创建与执行任务 ;(4)通过显式调用 Task或Task的构造函数创建任务。5.在 WPF 应用程序中有几种可用的定时器?【参考解答】有 3 种。(1)System、 Timers 、 Timer 类;(2)System、 Windows 、 Threading、 DispatcherTimer 类;(3)System、 Threading 、 Timer 类。6.简述实现任务的取消功能的机制。【参考解答】System、 Threading、 CancellationTokenSource 用于创建取消通知 ,称为取消源。System、 Threading 、 C

12、ancellationToken 结构用于传播应取消操作的通知 ,称为取消令牌。 调用任务的代码在分配任务前 ,可先用 CancellationTokenSource 类创建一个取消源。在调 用任务的代码中 ,可通过取消源的 Cancel 方法发出取消通知 ,该方法会将每个取消令牌副本上 的 IsCancellationRequested 属性都设置为 true 。执行任务的方法接收到取消通知后 ,可以终止执行。第6章1.TPL 支持哪些并行方式?【参考解答】TPL 支持数据并行 ,任务并行与并行查询 (PLINQ) 。2.并行编程中的分区有哪些形式?【参考解答】按范围分区 ;按区块分区 ;动

13、态分区 ;自定义分区。3.简述 Parallel 帮助器类有哪些?功能分别就是什么?【参考解答】帮助器类包括 ParallelOptions 、ParallelLoopState 、ParallelLoopResult 、 CancellationToken 与 CancellationTokenSource 。ParallelOptions 类用于为 Parallel 类的方法提供操作选项 ,常用属性有 :CancellationToken 、 MaxDegreeOfParallelism 、 TaskScheduler。ParallelLoopState 类用于将 Parallel 循环的

14、迭代与其她迭代交互。常用属性与方法 有 :IsExceptional 属性、 IsStopped 属性、 Break 方法、 Stop 方法。ParallelLoopResult 类用于提供 Parallel 循环的完成状态 , 常用属性有 :IsCompleted 、 LowestBreakIteration 。CancellationTokenSource 用于创建取消通知 ,称为取消源。CancellationToken 结构用于传播应取消操作的通知 ,称为取消令牌。4.常用的并发集合类有几种?【参考解答】 ConcurrentBag;ConcurrentQueue;Concurrent

15、Stack;ConcurrentDictionary 。5.使用 Parallel 、 Invoke 方法时 ,为了能让 Action 与 WPF 界面交互 ,要注意什么问题? 【参考解答】不能使用默认的任务调度程序 ,而就是通过设置并行选项 ,将任务调度程序与 WPF 当前同 步上下文关联起来 ,相关代码如下。ParallelOptions options = new ParallelOptions();options、 TaskScheduler = TaskScheduler、 FromCurrentSynchronizationContext();第7章1.简要介绍 Web 服务与 W

16、CF 有哪些区别与联系。【参考解答】Web 服务就是一种以 XML 作为数据交换格式、部署在 Web 服务器上的一种应用程序服 务,在Web服务中,可公开被各种客户端程序调用的方法。WCF就是微软公司推出的符合 SOA思想的分布式应用程序技术框架与编程模型 ,就是建立在消息通信这一概念基础之上的一个运行时服务系统。Web服务只就是 WCF的其中一部分,除了 Web服务外,WCF还包括其她各种服务。2.简要介绍 WCF 服务的承载方式及其特点。【参考解答】WCF 服务的承载方式包括 :利用 IIS 或者 WAS 承载、利用 Windows 服务承载、自承载。 其特点如下。(1)用 IIS 或者

17、WAS 承载 :这就是最常用的一种承载方式 ,特点就是部署简单 ,方便。(2)用 Windows 服务承载 :用【 WCF 服务库】模板创建的 WCF 服务利用 Windows 进程 去承载。(3)自承载 :指开发人员自己编写代码实现承载 WCF 的工作。 优点就是实现灵活 ,需要的 环境支持最小。缺点就是高级宿主管理功能需要自己写代码去实现。3.什么就是服务协定 ,什么就是数据协定 ,分别用哪些特性声明服务协定与数据协定? 【参考解答】服务协定就是指 WCF 对客户端公开哪些服务。 WCF 服务端通过服务协定向客户端公开 以下内容 :操作方法、消息交换模式、采用的通信协议以及序列化格式。服务

18、协定用 ServiCeContraCt 特性与 OperationContraCt 特性来共同声明。数据协定描述的就是消息中包含哪些数据 ,即规定哪些数据能够被序列化为 XML 传输到客户端。数据协定用 DataContraCt 特性与 DataMember 特性来共同声明。第8章1.编写基于 C/S 的 HTTP 应用程序时 ,有哪几种实现技术?各自的特点就是什么?【参考解答】(1).用可插接式协议实现可插接式协议用 WebRequest类与 WebResponse类来实现。这两个类就是各种与具体的 通信协议相关的类的基类 ,提供了上传、下载等基本方法。或者说 ,不论采用的就是哪种通信 协议

19、,都可以用这两个对来实现。(2).用 HttpWebRequest 与 HttpWebResponse 实现HttpWebRequest 类与 HttpWebResponse 类就是针对 HTTP 而提供的 ,分别从 WebRequest 类与WebResponse类继承而来。(3).用WCF实现用 WCF 与基于任务的编程模型实现 HTTP 应用编程就是面向服务编程中建议的做法。 前两种方式都就是传统的编程模型 ,在实际项目中 ,如果用传统的编程模型来实现 ,除了业 务处理之外 ,很多细节也都需要程序员自己去完成 ,例如负载平衡、网络监视、安全管理、防 范攻击等。而用 WCF 来实现 ,程序

20、员只需要处理业务逻辑即可 ,其她工作让 WCF 内部去完成 就行了。2.WCF 客户端与服务端的消息交换模式有哪些?【参考解答】请求 /应答模式、单向模式、双工模式。第9章1.TCP 有哪些主要特点?【参考解答】(1)一对一通信。一旦通信双方建立了 TCP 连接,连接中的任何一方都能向对方发送数据 与接收对方发送来的数据。每个 TCP 连接只能有两个端点 ,而且只能一对一通信。(2)安全顺序传输。通过 TCP 连接传送的数据 ,能保证数据无差错、不丢失、不重复地准 确到达接收方 ,并且保证各数据到达的顺序与数据发出的顺序相同。(3)通过字节流发送数据。利用 TCP 传输数据时 ,数据以字节流的

21、形式进行传输。(4)传输的数据无消息边界。2.解决 TCP 的无消息边界问题有哪些常用的办法? 【参考解答】(1)发送固定长度的消息。(2)将消息长度与消息一起发送。(3)使用特殊标记分隔消息。3简述基于任务的异步 TCP编程与直接用Thread实现的主要区别。【参考解答】直接用 Thread 来实现 TCP 编程时 ,就是以多线程为目标来实现的 ,需要开发人员自己管理 多线程 ,因此开发人员必须熟练掌握多线程实现的所有细节 ,才能编写出实际的 TCP 应用程序。而基于任务的异步 TCP编程就是通过任务来实现 TCP编程,用多任务实现时,即使开发人 员对多线程、 线程池以及资源冲突与负载平衡等

22、所有技术实现细节不太熟悉 ,一样可以快速编 写出实际的 TCP 应用程序 ,而且程序的健壮性比直接用多线程来实现要高得多。4.简要回答用 WCF 编写 TCP 服务器端与客户端程序的一般步骤。【参考解答】使用 WCF 编写 TCP 服务器端应用程序的一般步骤如下。1)创建一个 WPF 应用程序 ,在项目中添加 WCF 服务。2)在 WCF 服务接口文件中定义服务端与客户端通信的协定 ,并实现定义在服务端需要实现的协定方法。3)修改服务端配置文件 ,并启动 WCF 服务 ,等待客户端调用并与客户端通信。4)根据实际情况确定就是否关闭 WCF 服务。使用 WCF 编写 TCP 客户端端应用程序的一

23、般步骤如下。1)创建一个 WPF 应用程序 ,添加服务引用。2)实现 WCF 服务定义在客户端需要实现的协定方法。3)调用 WCF 服务 ,与服务端进行通信。第 10 章1.UDP 与 TCP 的主要区别有哪些?【参考解答】UDP 就是简单的、面向数据报的无连接协议 ,提供了快速但不一定可靠的传输服务。与TCP 样,UDP也就是构建于底层IP协议之上的传输层协议。与 TCP相比,UDP具有以下特 点。(1)UDP 不但支持一对一通信 ,而且支持一对多通信。(2)UDP 传输速度比 TCP 快。(3)UDP 有消息边界 ,使用 UDP 不需要考虑消息边界问题。(4)UDP 不确保数据的发送顺序与

24、接收顺序一致。(5)UDP 可靠性不如 TCP。2.什么就是广播?什么就是多路广播?两者有什么区别?【参考解答】广播就是指同时向多个设备发送消息 ,并且所有子网中的设备都可以接收到发送方发来 的消息。每个广播消息包含一个特殊的 IP 地址。广播消息地址分为两种类型 :本地广播与全 球广播。本地广播可以向子网中的所有设备发送广播消息 ,其她网络不会受到本地广播的影 响。多路广播就是将消息从一台设备发送到本网或全网内选择的设备子集上 ,即发送到那些加入指定组播组的设备上。二者区别 :广播只能向其所在的子网内发送消息 ,而且就是向子网中的所有设备发送消息 没有目的性 ,不但造成了网络负载 ,而且资源

25、消耗较高。而多路广播就是将消息发送到加入到 特定组播组内的机器上 ,消息有目的性 ,资源消耗不高。3.简要回答利用 UdpClient 对象加入与退出多播组的步骤。【参考解答】在 UDP 协议中 , 广播与组播的实现都就是借助于特殊的 IP 地址实现的。 特别就是组播比 较特殊。对于 IPv4 来说,多播就是指在 224、0、0、0 到 239、255、255、255的 D 类 IP 地址 范围内进行广播。加入多播组时 ,首选创建 UdpClient 对象 ,然后使用 JoinMutiCastGroup 方法加入组播组。 当退出组播组时 ,使用 UdpClient 对象的 DropMultic

26、astGroup 方法可以退出多播组 ,参数中指出 要退出多播组的 IPAddress 对象。4.简要回答用 WCF 与 UDP 编写多播程序与用 UdpClient 类编写多播程序有哪些主要的 不同点?这两种实现方式中 ,各自的优缺点有哪些?【参考解答】使用 UDP 编写多播程序时 ,均需要将消息发送到特殊的 IP 地址。使用 UdpClient 类编写 多播程序时 ,需要先加入到特定的多播组 ,然后才能接收来自多播发送端发送的数据。具体实 现时主要就是利用 UdpClient 类的 JoinMutiCastGroup 方法加入组播组 ,发送端利用 UdpClient 对象的Send方法发送

27、数据到组播地址,接收端利用UdpCIient对象的Receive方法接收数据。 若要退出组播组调用 DropMulticastGroup 方法即可。使用WCF与UDP编写多播程序时,需要使用 WCF服务定义与实现通信的协定 ,然后向组 播地址发送消息 ,这样凡就是实现 WCF 服务定义与实现通信协定的客户端均可以接收到消 息。使用 UdpCIient 类实现时 ,主要借助多线程与多任务来实现 ,易于理解 ,但就是需要考虑较 多的实现细节。而 WCF 模式对 UDP 多播编程进行了进一步的封装 ,降低了编程的复杂度 ,更 适合分布式环境下的 UDP 通信程序。第 11 章1.简述事务队列与非事务

28、队列的主要区别。【参考解答】事务就是以保证数据的完整性与业务逻辑上的一致性为目的 ,在不破坏数据的正确性与完整性条件下 ,为单个逻辑工作而执行的一系列不可分割的操作。 事务允许将一组操作组合到 一起。如果一个操作失败 ,所有的操作都将失败。非事务队列就是临时性的 ,消息保存在内存中 ,不用事务来保护对消息的操作。一但服务 器发生问题 ,或者调用方可能出现异常 ,消息会丢失。事务队列就是永久性的 ,消息保存在磁盘中 ,当服务器当机、重启或崩溃 ,消息可在系统恢 复后被读取。同时 ,消息发布、获取与删除都在环境事务范围内 ,从而确保消息的可靠性。2.如何利用 MSMQ 实现双工通信?【参考解答】由

29、于 WCF 中的默认排队绑定不支持使用队列进行双工通信 ,当 WCF 与 MSMQ 绑定后 , 所有服务操作均要求为单向 ,故 MSMQ 不支持双工通信。如果想利用 MSMQ 实现双工通信 , 可用两个单向协定来解决。基本方法如下 :在客户端也定义与实现服务协定 ,服务端就可以通过代理调用客户端提供的服务。 此时服 务端变成了客户端 ,客户端变成了服务端 ,从而实现类似双工通信的功能。3.简述死信队列与病毒消息队列的用途。【参考解答】 死信队列就是用于记录传送失败排队消息的特殊队列 ,消息传送失败可能就是由于网络故障、队列已删除、队列已满、身份验证失败或未能在消息生存时间 (TTL)内准时传送等原因 而引起的。为了记录消息在传输到目标队列时的失败情况 ,失败消息将被传输到死信队列中。 死信队列消息可处理传输故障 ,确保消息未能传递到目标队列时收到通知。在将消息传送到目标队列后 ,服务在处理该消息时可能会反复出现故障 ,病毒消息队列就 是用于记录已超出向应用程序传递的最大尝试次数的消息队列。病毒消息队列可用于解决服 务读取消息时不能对消息进行处理 ,并终止从中读取消息的事务时从队列重复读取的消息的 传送。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1