UDP调用connect

           UDP调用connect函数之前写过了,用的一个编程实例简单说明了一下,今天再更深入的学习一下。

之前博文地址:https://blog.csdn.net/ma2595162349/article/details/78785885

          UDP调用connect函数主要有一下几个作用:

1.异步错误会返回到UDP套接字

2.每次调用sendto时,内核短暂连接套接字,发送数据包,然后断开套接字字,效率低

2.除了connect连接的该套接字外,服务端不会收到其它套接字的数据包


       为啥UDP调用connect后会产生这样的效果呢?下面需要深入学习一下,UDP调用connect之后,客户端就去连接服务端,然后服务端的信息就会记录到与客户端套接字相关的PCB中,还有当前套接字发送了啥数据也会保存在PCB中。如果没有调用connect时不会保存连接信息的,而且数据在被发送之后就会丢弃记录也将消失。

connect成功之后,每当客户端发送数据到服务端时,这些记录就会被保存套接字相关的PCB中,如果发送时产生ICMP消息,则ICMP会根据UDP包头和套接字PCB的记录信息找到对应的套接字,并把错误返给它。

connect成功之后,连接已经建立,所以下次发送数据就不需要再次建立连接了。服务端套接字的PCB也保存了本客户端相关信息,所以其他客户端在发送数据给该服务端的时候,该服务端将不予接收。


扫描二维码关注公众号,回复: 958605 查看本文章

猜你喜欢

转载自blog.csdn.net/ma2595162349/article/details/80318776
UDP