第05章 TCP应用编程习题解答_第05章习题解答

2020-02-28 其他范文 下载本文

第05章 TCP应用编程习题解答由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“第05章习题解答”。

第5章

TCP应用编程

习题05 参考解答

1.TCP有哪些主要特点? 【解答】

TCP最主要的特点是:

(1)是面向连接的传输层协议;

(2)每个TCP连接只能有两个端点,而且只能一对一通信,不能一点对多点直接通信;

(3)通过TCP连接传送的数据,能保证数据无差错、不丢失、不重复地准确到达接收方,并且保证各数据到达的顺序与数据发出的顺序相同;(4)数据以字节流的方式传输;(5)传输的数据无消息边界。

2.简要回答编写基于TCP的服务器端和客户端程序的一般步骤。【解答】

使用对套接字封装后的类,编写基于TCP的服务器端程序的一般步骤为:

(1)创建一个TcpListener对象,然后调用该对象的Start方法在指定的端口进行监听。

(2)在单独的线程中,循环调用AcceptTcpClient方法接受客户端的连接请求,并根据该方法的返回的结果得到与该客户端对应的TcpClient对象。(3)每得到一个新的TcpClient对象,就创建一个与该客户对应的线程,在线程中与对应的客户进行通信。(4)根据传送信息的情况确定是否关闭与客户的连接。

使用对套接字封装后的类,编写基于TCP的客户端程序的一般步骤如下:(1)利用TcpClient的构造函数创建一个TcpClient对象。(2)使用Connect方法与服务器建立连接。

(3)利用TcpClient对象的GetStream方法得到网络流,然后利用该网络流与服务器进行数据传输。(4)创建一个线程监听指定的端口,循环接收并处理服务器发送过来的信息。(5)完成工作后,向服务器发送关闭信息,并关闭与服务器的连接。

3.解决TCP的无消息边界问题有哪些常用的方法?

【解答】

常用的方法有三种:

(1)发送固定长度的消息。适用于信息长度固定的场合。(2)将消息长度与消息一起发送。此方法适用于任何场合。

(3)使用特殊标记分隔消息。适用于消息本身不包含特殊标记的场合。

4.简述异步编程的两种模式。【解答】

(1)基于事件的异步设计模式

该模式用事件驱动模型实现异步方法。这种模式用单独的线程在后台执行耗时的任务,当后台任务完成时,就自动触发对应的事件。该模式既具有多线程应用程序的优点,同时也隐匿了多线程设计中固有的许多复杂问题。

(2)基于IAsyncResult的异步设计模式

基于IAsyncResult的异步设计模式通过前缀分别为“Begin”和“End”的两个方法实现开始和结束异步操作,每个Begin方法都必须有一个与其对应的End方法。程序在调用Begin方法后,调用该方法的线程会继续执行其下面的语句,同时该方法用另一个单独的线程执行异步操作,当异步操作完成后,会返回一个实现IAsyncResult接口的对象,循环判断该对象的IsCompleted属性,来决定异步操作是否完成。调用Begin方法后,程序调用End方法来结束异步操作。

编写一般异步操作的应用程序时,建议尽量使用基于事件的异步设计模式,因为它能有效地提高项目开发效率和质量,同时也降低了异步编程的复杂度。

第16章

TCP应用编程

5.如果要在服务器进行监听的同时进行其他操作,异步套接字需要提供那些方法? 【解答】

异步套接字需要提供那些方法:(1)需要开始接受网络连接请求的方法

(2)需要一个处理连接请求并开始发送或接收网络数据的回调方法(3)需要一个结束发送或接收数据的方法

6.简述利用轮询方式的异步设计模式控制同步方法的实现思路。【解答】

.NET Framework提供了一种可以利用委托异步调用任何方法的技术。实现思路:首先,声明一个与要调用的方法具有相同签名的委托,声明后,公共语言运行时就会自动为该委托定义BeginInvoke方法和EndInvoke方法。然后,调用BeginInvoke方法开始异步执行,该方法会立即返回IasyncResult类型的接口,从用户界面的服务线程中进行异步调用时,可以利用该接口的IsCompleted属性来通过轮询方式检查异步调用是否完成。在轮询过程中,BeginInvoke方法在ThreadPool中创建的线程会继续执行异步方法。程序调用BeginInvoke后,会继续执行BeginInvoke方法后面的代码,而不是等待异步调用完成。最后,调用委托的EndInvoke方法结束异步操作。如果异步调用尚未完成,则EndInvoke会一直阻止调用线程,直到异步调用完成。由于有可能会引起调用EndInvoke方法的线程阻塞,所以一般不要从服务于用户界面的线程直接调用该方法,否则会在异步操作完成前,给用户一个界面无反应的错觉。为了使界面操作流畅,可以将上面的语句改为用其他线程执行。

TCP,IP原理与应用

TCP/IP原理与应用(专业限选课)Theory and Application of TCP/IP【课程编号】XZ26107【学分数】3.5【学时数】50=46+4 【课程类别】专业限选 【编写日期】2010.3.30 【先修课......

电磁场习题解答

1—2—2、求下列情况下,真空中带电面之间的电压。 (2)、无限长同轴圆柱面,半径分别为a和b(ba),每单位长度上电荷:内柱为而外柱为。解:同轴圆柱面的横截面如图所示,做一长为l半径为r(a......

公关习题解答

公关是指社会组织运用信息传播沟通的手段处理自身的公众问题,以达到组织与公众相互了解、相互适应、优化组织的生态环境目的的管理活动。 特征;1、维护公众利益,谋求与公众利益......

合同法分则习题解答

融资租赁合同、借款合同、技术咨询合同1、甲公司需要乙公司生产的一套精密成套设备, 双方找丙公司商议, 由丙公司购买并直接租给甲公司。甲、乙、丙三方签订了如下合同:(一)由丙......

第1.2章习题解答

第一章习题解答1.1 如何区分直流电磁系统和交流电磁系统?如何区分电压线圈和电流线圈?答:直流电磁铁铁心由整块铸铁铸成,而交流电磁铁的铁心则用硅钢片叠成,以减小铁损。 直流电......

《第05章 TCP应用编程习题解答.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
第05章 TCP应用编程习题解答
点击下载文档
相关专题 第05章习题解答 习题 TCP 第05章习题解答 习题 TCP
[其他范文]相关推荐
[其他范文]热门文章
下载全文