udp使用connect建立连接与普通udp连接区别

转自:https://blog.csdn.net/pyxllq/article/details/80320489

UDP中connect操作与TCP中connect操作有着本质区别.TCP中调用connect会引起三次握手,client与server建立连结.UDP中调用connect内核仅仅把对端ip&port记录下来。

使用connect建立的udp连接相比于普通udp连接有两个优势:

一: 提高发送效率

  1. 在普通udp连接上发送两个报文,在内核操作如下:

a) 建立连接;b)发送报文;c)断开连接;d)建立连接;e)发送第二个报文;f)断开连接

  1. connect udp发送两个报文,内核操作如下:

a)建立连接;b)发送第一个报文;c)发送第二个报文;d)断开连接

二:在高并发服务中可以增加系统稳定性
假设A 通过非connect的UDP与server B,C通信.B,C提供相同服务.为了负载均衡,我们让A与B,C交替通信. A与B通信IPa:PORTa <----> IPb:PORTb A与 C通信IPa:PORTa’ <---->IPc:PORTc。假设PORTa与PORTa’相同了(在大并发情况下会发生这种情况),那么就有可能出现A等待B的报文,却收到了C的报文.导致收报错误.解决方法内就是采用connect的UDP通信方式.在A中创建两个udp,然后分别connect到B,C.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值