UDP通讯相关以及与epoll结合的回射服务器

UDP属于用户数据报协议,属于传输层协议。提供面向无连接的、不可靠的传输,没有拥塞控制和超时重传机制。相对于TCP面向连接的,提供可靠传输的传输层协议,UDP也有其应用场景。UDP在首部开销小,传输速度快的优点,应用也很广泛比音视频通话,网络直播,游戏中帧同步等等。

不同于TCP这样的流式套接字,对于UDP不用处理粘包问题。UDP是面向报文的,对应用层交付的报文,直接添加协议头就交付给IP层,不会对报文进行合并或者拆分,保留了报文的边界。所以接收端的socket缓冲区采用链式结构保存每一个到达的UDP数据包,这样接收端一次recv只能从缓冲区读出一个数据包,而不用处理粘包问题。

UDP协议作为不可靠的传输,可能会出现丢包,乱序等问题。使用时需要实现数据包确认机制,丢包重传机制,数据包排序机制,另外尽量不发送大于路径MTU的数据包。

单个UDP传输的最大内容是1472字节,由于不同的网络中转设备设置的MTU不同。而Internet上标准MTU值为576,除去IP头和UDP头(576-20-8)等于548,所以我们发送的UDP数据报要控制在548字节之内。如果超了需要在发送端对UDP数据包进行分片发送,在接收端再进行组合。

下面是用UDP与epoll结合使用,实现的回射服务器。

服务器端 udp_epoll.cpp

#include <stdio.h> 
#include &l
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值