UDP有明确的结束标志,不会有粘包的,UDP本身有对数据完整性的校验,不完整的包会被丢弃,所以也不会不完整。如果你是指一次会受到2-3个UDP包,那只要根据开头和结束标记分割就行了。TCP的话,只要所需数据块的大小是确定的,然后每次接受的数据根据长度,不足就继续收,超过就把剩余的存下来与下次的接受合并,就可以解决粘包问题。
在公司最近项目中,有关设备搜索采用UDP广播方式搜索,出现的情况是,部分机器能正常接收到广播包,部分机器接收不到广播包,部分机器发送不了广播包情况,经过N天的查询,结果发现惊人的秘密:虚拟机网卡导致广播包发送不出去或接收不到问题!!!
参考文章
http://www.2cto.com/kf/201401/275852.html
http://my.oschina.net/leejun2005/blog/104955
http://blog.csdn.net/naturebe/article/details/6712153
http://ju.outofmemory.cn/entry/84775
网友评论