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也保存了本客户端相关信息,所以其他客户端在发送数据给该服务端的时候,该服务端将不予接收。


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

盼盼编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值