我们都知道,UDP是无连接的,但是为什么协议让UDP也可以调用connect()?
1.因为UDP可以是一对一,多对一,一对多,或者多对多的通信,所以每次调用sendto()/recvfrom()时都必须指定目标IP和端口号。通过调用connect()建立一个端到端的连接,就可以和TCP一样使用send()/recv()传递数据,而不需要每次都指定目标IP和端口号。但是它和TCP不同的是它没有三次握手的过程。
2.还可以通过在已建立连接的UDP套接字上,再次调用connect()实现以下功能:
a.指定新的IP地址和端口号。
b.断开连接。
这也与TCP有所不同,TCP套接字只能调用一次connect()函数。
本文解释了UDP为何能够调用connect()方法,包括其在一对一、多对一、一对多或多对多通信中的应用,以及如何通过connect()实现指定新IP地址和端口号、断开连接的功能,与TCP的不同之处在于UDP没有三次握手过程。
709

被折叠的 条评论
为什么被折叠?



