(二)UDP既支持一对一连接也支持一对多连接,使用广播便可以进行多地址的传送,而TCP并不支持一对多的连接;
(三)UDP消耗的网络带宽比TCP少;
(四)UDP和TCP,前者传输数据有消息边界,后者没有。UDP对通讯双方握手信号的缺乏会导致发送方不能确定数据报是否已经成功发送到对方主机。又由于一旦数据报丢失,协议本身并不能做出检测或者提示。
2.5 Socket简介
套接字是TCP/IP网络通讯所必不可少的部分。不同的主机之间进行双向通讯,套接字便可以当作他们之间的端点,在进行套接字通讯时,本地计算机的IP地址和端口号,还有对方计算机的IP地址和端口号,已经双方通讯的协议等信息都会被保存。
流套接字、数据报套接字和原始套接字是套接字的三种不同的类型。其中,TCP通讯使用流套接字来实现, UDP通讯使用数据报套接字实现, IP数据包通讯使用原始数据报套接字实现。System.Net.Sockets命名空间提供Socket类来实现三种套接字源'自:优尔:"论-文'网www.youerw.com。Socket类中参数,addressFamily表示的是网络类型,socketType指定Socket的类型,protocolType指定Scoket使用的协议[2]。
目前用户大多使用两种套接字:流套接字和数据报套接字。流套接字采用的是传输控制协议TCP协议,数据传输可靠性强;数据报套接字采用的是用户数据报协议UDP协议,数据传输实时性强。本系统使用了流套接字实现登陆等,用数据报套接字实现语音视频等数据的传输。
1.流套接字
流套接字提供的数据流服务是双向的、有序的、无重复并且没有边界记录,处理大量数据时多使用流套接字。网络传输层能够将数据分散或集中到尺寸合适的数据包中。流套接字是面向连接的,在进行数据交互之前,通信双方必须先建立一条路径,同时保证双方都是活动的、能够彼此响应的,缺点是建立这样的通信信道开支较大。大部分面向连接的协议会为了保证发送不出错,执行额外的计算以校验是否正确,所以开支会进一步增大。
2.数据报套接字
数据报套接字不保证数据传输的可靠性、有序性和无重复性,所以会出现一个从数据报套接字接收消息的进程发现重复消息,也可能发现发出顺序发生了改变。但是数据报套接字支持双向的数据流,另外保留记录边界是数据报套接字的一个重要特点。数据报套接字是无连接的,数据报并不可靠,因为它不管接收方是否监听,数据报的排序和可靠性则需要程序员来负责管理。数据报套接字通信一般采用客户机/服务器方式
C#局域网的可视通话软件的设计+源代码(4):http://www.youerw.com/jisuanji/lunwen_58243.html