默认
发表评论 3
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
自定义的UDP私有协议,消息头为什么要加消息长度?
阅读(33138) | 评论(3 收藏 淘帖
自定义的UDP私有协议,消息头为什么要加消息长度?UDP不会出现粘包问题,是不是为了更容易读取消息体?

upd_header {
    command_type : unsigned char
    total_length: unsigned int
    flag :  unsigned char
}

body {
}


即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

上一篇:netty编译器对与后续操作有多大影响下一篇:UDP私有协议如何进行数据包的检验?
推荐方案
评论 3
是的,UDP不会发生粘包问题,所以不需要消息长度这种东西,估计这是设计TCP的习惯带过来的吧,一般来说在UDP里没有意义。
难道这个长度是为了防止udp包过长被截断,用来比对数据是否完整的作用??
签名: 秋天到了,终于凉快了
引用:clark.li 发表于 2018-06-12 09:52
难道这个长度是为了防止udp包过长被截断,用来比对数据是否完整的作用??

理论上超过长度,会被丢弃了,udp不像tcp这种“流”式的通道,拆包从技术或硬件上还是比较难处理的,会把协议栈那一层的事搞复杂,也就违背了UDP协议保持简单高效的初衷了
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部