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

上传人:痛*** 文档编号:101379671 上传时间:2022-06-05 格式:DOC 页数:7 大小:60.50KB
收藏 版权申诉 举报 下载
c高级网络程序设计课后答案_第1页
第1页 / 共7页
c高级网络程序设计课后答案_第2页
第2页 / 共7页
c高级网络程序设计课后答案_第3页
第3页 / 共7页
资源描述:

《c高级网络程序设计课后答案》由会员分享,可在线阅读,更多相关《c高级网络程序设计课后答案(7页珍藏版)》请在装配图网上搜索。

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

2、Web效劳器,缺点是B/S模式有沙盒限制。3什么是套接字?套接字有哪几种类型?【参考解答】套接字是支持TCP/IP网络通信的根本操作单元,是不同主机间的进程进展通信的端点。在一个套接字实例中,既保存了本机的IP地址和端口,也保存了对方的IP地址和端口,同时也保存了双方通信采用的网络协议等信息。套接字有3种类型:流式套接字、数据报套接字和原始套接字。第3章1简要答复以下问题。1进程和线程有什么区别?为什么要用多线程?多线程适用于哪种场合?2前台线程和后台线程有什么区别和联系?如何判断一个线程属于前台线程还是后台线程?如何将一个线程设置为后台线程?【参考解答】1进程是正在执行的程序,线程是*个进程

3、中的一个或多个执行流。多线程可让多个任务同时执行。当执行需要较长时间才能完成的连续操作时,或者等待网络或其他I/O设备相应时,都可以使用多线程技术。2一个线程要么是前台线程要么是后台线程。两者的区别是:后台线程不会影响进程的终止,而前台线程则会影响进程的终止。2什么是同步?为什么需要同步?C#提供了什么语句可以简单地实现代码同步?【参考解答】执行*语句时,在该语句完成之前不会执行其后面的代码,这种执行方式称为同步执行。当并行执行的多个线程同时访问*些资源时,必须考虑如何让多个线程保持同步。同步的目的是为了防止多个线程同时访问*些资源时出现死锁和争用情况。C#提供的lock语句可以简单地实现代码

4、同步。3什么是线程池?使用线程池有什么好处?【参考解答】线程池是在后台执行任务的线程集合,好处有:如当*个线程无法进入线程池执行时先将其放入等待队列,自动决定用哪个处理器执行线程池中的*个线程,自动调节这些线程执行时的负载平衡问题等。另外,线程池总是在后台异步处理请求的任务,而不会占用主线程,也不会延迟主线程中后续请求的处理。4应用程序域和进程有什么区别和联系?【参考解答】一个进程既可以只包含一个应用程序域,也可以同时包含多个相互隔离的应用程序域。多进程是在操作系统级别使用的功能,资源消耗较大,细节控制复杂;应用程序域是在应用程序级别使用的功能,比直接用多进程来实现进程管理速度快、资源消耗少而

5、且更平安,是轻量级的进程管理。第4章1什么是编码?什么是解码?为什么要对字符进展编码和解码?.NET框架提供了哪些用于字符编码和解码的类?【参考解答】将字符序列转换为字节序列的过程称为编码;当这些字节传送到网络的接收方时,接收方再将字节序列转换为字符序列,这种过程称为解码。在网络通信中,很多情况下通信双方传达的都是字符信息。但是,字符信息并不能直接从网络的一端传递到另一端,这些字符信息首先需要被转换成一个字节序列,然后才能在网络中传输。因此,发送方需要进展编码,相应的接收方就要执行解码。.NET框架中一般常用Encoding类实现编码和解码。Encoding类位于System.Te*t命名空间

6、下,该类主要用于对字符集进展编码和解码以及将一种编码格式转换为另一种编码格式。如果有更详细的需求可以还使用与Encoding类位于同一命名空间下的Encoder和Decoder类来进展编码和解码。2.NET提供的从Stream类继承的数据流都有哪些?【参考解答】文件流FileStream、存流MemoryStream、网络流NetworkStream加密流CryptoStream。3简述对称加密和不对称加密的特点及实现原理。【参考解答】对称加密:1加密和解密数据使用同一个密钥;2私钥算法以块为单位加密数据,一次加密一个数据块,因此支持数据流。对称加密算法的优点:强度高,加、解密速度快,适合加密

7、大量数据。对称加密的缺点:通信双方使用一样的密钥和IV加密和解密,发送方需要先将密钥和IV传递给接收方。如果攻击者截获了密钥和IV,也就等于知道了如何解密数据。不对称加密:1使用一个需要的私钥和一个可以对任何人公开的公钥。用公钥加密的数据只能用私钥解密,反之,用私钥加密的数据只能用公钥解密;2私钥加密算法使用长度可变的缓冲区,因此无法使用流。不对称加密的优点:更不容易被攻击。不对称加密的缺点:由于无法使用流,因此不适合加密大量数据。4什么是数字签名?数字签名有什么用途?【参考解答】在应用程序中,可以利用数字签名实现数据身份验证和数据完整性验证。数据身份验证是为了验证数据是不是持有私钥的人发送的

8、;数据完整性验证则用于验证数据在传输过程中是否被修改正。数字签名的用途:通过Internet下载文件后,验证下载的文件是否和原始文件完全一样。换言之,如果通信双方希望确保信息是来自对方而不是来自第三方,需要使用数字签名进展身份验证。另外,数字签名还可以防止特定一方否认曾发送过的信息。第5章1仅包含async和await关键字的异步方法与用Task.Run调用的异步方法有和不同?【参考解答】async和await关键字是C# 5.0提供的功能,仅包含async和await关键字的异步方法不会创立新线程,它只是表示在当前线程中异步执行指定的任务。而Task.Run方法是.NET框架4.5提供的功能

9、,它会在线程池中用单独的线程执行*个任务。2把普通方法和异步方法作为任务来执行时,调用方法有何不同?【参考解答】普通方法要用Task.Run方法去调用,或者用Task、Task类的构造函数显示创立Task实例,然后再启动。异步方法不需要用Task.Run方法去调用。3Action和Func委托有什么不同?【参考解答】Action委托封装了不带返回值的方法有016个输入参数,返回类型为void,Func委托封装了带返回值的方法有016个输入参数,返回类型为TResult。4有几种创立任务的方式?【参考解答】有4种方式。1利用Task.Run方法隐式创立和执行任务;2利用async和await关键

10、字隐式创立异步任务;3利用WPF控件的调度器隐式创立和执行任务;4通过显式调用Task或Task的构造函数创立任务。5在WPF应用程序中有几种可用的定时器?【参考解答】有3种。1类;2类;3类。6简述实现任务的取消功能的机制。【参考解答】用于创立取消通知,称为取消源。构造用于传播应取消操作的通知,称为取消令牌。调用任务的代码在分配任务前,可先用CancellationTokenSource类创立一个取消源。在调用任务的代码中,可通过取消源的Cancel方法发出取消通知,该方法会将每个取消令牌副本上的IsCancellationRequested属性都设置为true。执行任务的方法接收到取消通知

11、后,可以终止执行。第6章1TPL支持哪些并行方式?【参考解答】TPL支持数据并行,任务并行和并行查询PLINQ。2并行编程中的分区有哪些形式?【参考解答】按围分区;按区块分区;动态分区;自定义分区。3简述Parallel帮助器类有哪些?功能分别是什么?【参考解答】帮助器类包括ParallelOptions、ParallelLoopState、ParallelLoopResult、CancellationToken和CancellationTokenSource。ParallelOptions类用于为Parallel类的方法提供操作选项,常用属性有:CancellationToken、Ma*De

12、greeOfParallelism、TaskScheduler。ParallelLoopState类用于将Parallel循环的迭代与其他迭代交互。常用属性和方法有:IsE*ceptional属性、IsStopped属性、Break方法、Stop方法。ParallelLoopResult类用于提供Parallel循环的完成状态,常用属性有:Ispleted、LowestBreakIteration。CancellationTokenSource用于创立取消通知,称为取消源。CancellationToken构造用于传播应取消操作的通知,称为取消令牌。4常用的并发集合类有几种?【参考解答】Con

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

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

15、是部署简单,方便。2用Windows效劳承载:用【WCF效劳库】模板创立的WCF效劳利用Windows进程去承载。3自承载:指开发人员自己编写代码实现承载WCF的工作。优点是实现灵活,需要的环境支持最小。缺点是高级宿主管理功能需要自己写代码去实现。3什么是效劳协定,什么是数据协定,分别用哪些特性声明效劳协定和数据协定?【参考解答】效劳协定是指WCF对客户端公开哪些效劳。WCF效劳端通过效劳协定向客户端公开以下容:操作方法、消息交换模式、采用的通信协议以及序列化格式。效劳协定用ServiceContract特性和OperationContract特性来共同声明。数据协定描述的是消息中包含哪些数据

16、,即规定哪些数据能够被序列化为*ML传输到客户端。数据协定用DataContract特性和DataMember特性来共同声明。第8章1编写基于C/S的HTTP应用程序时,有哪几种实现技术?各自的特点是什么?【参考解答】(1)用可插接式协议实现可插接式协议用WebRequest类和WebResponse类来实现。这两个类是各种与具体的通信协议相关的类的基类,提供了上传、下载等根本方法。或者说,不管采用的是哪种通信协议,都可以用这两个对来实现。(2)用HttpWebRequest和HttpWebResponse实现HttpWebRequest类和HttpWebResponse类是针对HTTP而提供

17、的,分别从WebRequest类和WebResponse类继承而来。(3)用WCF实现用WCF和基于任务的编程模型实现HTTP应用编程是面向效劳编程中建议的做法。前两种方式都是传统的编程模型,在实际工程中,如果用传统的编程模型来实现,除了业务处理之外,很多细节也都需要程序员自己去完成,例如负载平衡、网络监视、平安管理、防攻击等。而用WCF来实现,程序员只需要处理业务逻辑即可,其他工作让WCF部去完成就行了。2WCF客户端和效劳端的消息交换模式有哪些?【参考解答】请求/应答模式、单向模式、双工模式。第9章1TCP有哪些主要特点?【参考解答】1一对一通信。一旦通信双方建立了TCP连接,连接中的任何

18、一方都能向对方发送数据和接收对方发送来的数据。每个TCP连接只能有两个端点,而且只能一对一通信。2平安顺序传输。通过TCP连接传送的数据,能保证数据无过失、不丧失、不重复地准确到达接收方,并且保证各数据到达的顺序与数据发出的顺序一样。3通过字节流发送数据。利用TCP传输数据时,数据以字节流的形式进展传输。4传输的数据无消息边界。2解决TCP的无消息边界问题有哪些常用的方法?【参考解答】1发送固定长度的消息。2将消息长度与消息一起发送。3使用特殊标记分隔消息。3简述基于任务的异步TCP编程和直接用Thread实现的主要区别。【参考解答】直接用Thread来实现TCP编程时,是以多线程为目标来实现

19、的,需要开发人员自己管理多线程,因此开发人员必须熟练掌握多线程实现的所有细节,才能编写出实际的TCP应用程序。而基于任务的异步TCP编程是通过任务来实现TCP编程,用多任务实现时,即使开发人员对多线程、线程池以及资源冲突和负载平衡等所有技术实现细节不太熟悉,一样可以快速编写出实际的TCP应用程序,而且程序的强健性比直接用多线程来实现要高得多。4简要答复用WCF编写TCP效劳器端和客户端程序的一般步骤。【参考解答】使用WCF编写TCP效劳器端应用程序的一般步骤如下。1创立一个WPF应用程序,在工程中添加WCF效劳。2在WCF效劳接口文件中定义效劳端与客户端通信的协定,并实现定义在效劳端需要实现的

20、协定方法。3修改效劳端配置文件,并启动WCF效劳,等待客户端调用并与客户端通信。4根据实际情况确定是否关闭WCF效劳。使用WCF编写TCP客户端端应用程序的一般步骤如下。1创立一个WPF应用程序,添加效劳引用。2实现WCF效劳定义在客户端需要实现的协定方法。3调用WCF效劳,与效劳端进展通信。第10章1UDP和TCP的主要区别有哪些?【参考解答】UDP是简单的、面向数据报的无连接协议,提供了快速但不一定可靠的传输效劳。与TCP一样,UDP也是构建于底层IP协议之上的传输层协议。与TCP相比,UDP具有以下特点。1UDP不但支持一对一通信,而且支持一对多通信。2UDP传输速度比TCP快。3UDP

21、有消息边界,使用UDP不需要考虑消息边界问题。4UDP不确保数据的发送顺序和接收顺序一致。5UDP可靠性不如TCP。2什么是播送?什么是多路播送?两者有什么区别?【参考解答】播送是指同时向多个设备发送消息,并且所有子网中的设备都可以接收到发送方发来的消息。每个播送消息包含一个特殊的IP地址。播送消息地址分为两种类型:本地播送和全球播送。本地播送可以向子网中的所有设备发送播送消息,其他网络不会受到本地播送的影响。多路播送是将消息从一台设备发送到本网或全网选择的设备子集上,即发送到那些参加指定组播组的设备上。二者区别:播送只能向其所在的子网发送消息,而且是向子网中的所有设备发送消息,没有目的性,不

22、但造成了网络负载,而且资源消耗较高。而多路播送是将消息发送到参加到特定组播组的机器上,消息有目的性,资源消耗不高。3简要答复利用UdpClient对象参加和退出多播组的步骤。【参考解答】在UDP协议中,播送和组播的实现都是借助于特殊的IP地址实现的。特别是组播比拟特殊。对于IPv4来说,多播是指在到的D类IP地址围进展播送。参加多播组时,首选创立UdpClient对象,然后使用JoinMutiCastGroup方法参加组播组。当退出组播组时,使用UdpClient对象的DropMulticastGroup方法可以退出多播组,参数中指出要退出多播组的IPAddress对象。4简要答复用WCF和U

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

24、序时,需要使用WCF效劳定义和实现通信的协定,然后向组播地址发送消息,这样但凡实现WCF效劳定义和实现通信协定的客户端均可以接收到消息。使用UdpClient类实现时,主要借助多线程和多任务来实现,易于理解,但是需要考虑较多的实现细节。而WCF模式对UDP多播编程进展了进一步的封装,降低了编程的复杂度,更适合分布式环境下的UDP通信程序。第11章1简述事务队列和非事务队列的主要区别。【参考解答】事务是以保证数据的完整性和业务逻辑上的一致性为目的,在不破坏数据的正确性和完整性条件下,为单个逻辑工作而执行的一系列不可分割的操作。事务允许将一组操作组合到一起。如果一个操作失败,所有的操作都将失败。非

25、事务队列是临时性的,消息保存在存中,不用事务来保护对消息的操作。一但效劳器发生问题,或者调用方可能出现异常,消息会丧失。事务队列是永久性的,消息保存在磁盘中,当效劳器当机、重启或崩溃,消息可在系统恢复后被读取。同时,消息发布、获取和删除都在环境事务围,从而确保消息的可靠性。2如何利用MSMQ实现双工通信?【参考解答】由于WCF中的默认排队绑定不支持使用队列进展双工通信,当WCF和MSMQ绑定后,所有效劳操作均要求为单向,故MSMQ不支持双工通信。如果想利用MSMQ实现双工通信,可用两个单向协定来解决。根本方法如下:在客户端也定义和实现效劳协定,效劳端就可以通过代理调用客户端提供的效劳。此时效劳

26、端变成了客户端,客户端变成了效劳端,从而实现类似双工通信的功能。3简述死信队列和病毒消息队列的用途。【参考解答】死信队列是用于记录传送失败排队消息的特殊队列,消息传送失败可能是由于网络故障、队列已删除、队列已满、身份验证失败或未能在消息生存时间(TTL)准时传送等原因而引起的。为了记录消息在传输到目标队列时的失败情况,失败消息将被传输到死信队列中。死信队列消息可处理传输故障,确保消息未能传递到目标队列时收到通知。在将消息传送到目标队列后,效劳在处理该消息时可能会反复出现故障,病毒消息队列是用于记录已超出向应用程序传递的最大尝试次数的消息队列。病毒消息队列可用于解决效劳读取消息时不能对消息进展处理,并终止从中读取消息的事务时从队列重复读取的消息的传送。. z.

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!