恭喜,你发布的帖子
发布于 2021-09-01 12:40:41
9楼
网络节点少又不在乎丢包,用UDP没啥问题。
网络节点多又不允许丢包,用UDP比TCP更不适合。
最终,工业上我是不会去折腾这种选择问题,我直接用TCP她多美她多香。
如果是民用,那就随便了,丢包就再发一次别,再发一次不行就发到行呗,反正不在乎丢包不在乎时间。
或者,把程序全部改造成丢包都无所谓?那这更不想去折腾,我有闲暇时间打一局游戏不爽么。
物理环境造成的丢包对谁都一样,只不过通过代价和开销封装起来,直接看不到罢了。
如果手机在wifi和4G之间切换,基于TCP会掉线,而基于UDP可以做到不掉线。TCP的一些东西有点太老沉重,很多问题。建议了解一下通信的趋势,那些大公司拿UDP在做什么,早已不是陈年的印象了。HTTP/3 是基于UDP,谷歌的Quic,腾讯抖音快手做的一些事情。
UDP是一张白纸,非常单纯的传输层协议。IP是从计算机到计算机,UDP是从端口到端口,非常简洁。很多手段可以在应用层做,可玩性好。
自己做的UDP通信结构已经主体完成,在调试迭代。原本没这个打算,前些日子用UDP跑modbus效果不错,想起来的。
现在采用的Master发命令的UDP报文头是21个字节,后面携带用户数据。Slave应答的报文头是28字节。读、写、心跳都是。
提一嘴,封装UDP报文的时候需要把本地网口IP地址写进去,更多信息如下
其中,MAC地址是排在PN 名称之后,而PN name 的长度是不定的。计算MAC地址起始索引的示意如下。它总是在从1开始的4的倍数+2的位置
请填写推广理由:
分享
只看
楼主