一、tcp的主要优点有哪些?
(1)面向连接的传输层协议
(2)每一个tcp连接只能有两个端口,而且只能一对一通信,不能一对多直接通信;
(3)传输的数据无消息边界;
(4)数据以字节流的方式传输;
(5)通过tcp连接传输的数据,能保证数据无差错、不丢失、不重复地准确到达接收方并且保证数据到达的顺序与数据发出的顺序相同。
二、解决消息的无边界问题有哪些常用的方法?
(1)发送固定长度的消息。适用于信息长度固定的场合。
(2)将消息长度与消息一起发送。此方法使用与任何场合。
(3)使用特殊标记分割消息。适用于消息本身不包含特殊符号的场合。
三、简单描述异步编程的两种模式
(1)基于事件的异步设计模式
该模式用事件驱动模型实现异步方法。这种模式用单独的线程在后台执行耗时的任务,当后台任务完成时,就自动触发对应的事件。该模式既具有多线程应用程序的优点,同时也隐匿了多线程设计中固有的许多复杂问题。
(2)基于IAsyncResult的异步设计模式
基于IAsyncResult的异步设计模式通过前缀分别为“Begin”和“End”的两个方法实现开始和结束异步操作,每个Begin方法都必须有一个与其对应的End方法。程序在调用Begin方法后,调用该方法的线程会继续执行其下面的语句,同时该方法用另一个单独的线程执行异步操作,当异步操作完成后,会返回一个实现IAsyncResult接口的对象,循环判断该对象的IsCompleted属性,来决定异步操作是否完成。调用Begin方法后,程序调用End方法来结束异步操作。
编写一般异步操作的应用程序时,建议尽量使用基于事件的异步设计模式,因为它能有效地提高项目开发效率和质量,同时也降低了异步编程的复杂度。