udp引发的一起血案------message too long

来源:互联网 发布:天津seo点击工具 编辑:程序博客网 时间:2024/06/10 14:06

        某次, 某同学使用udp进行数据传输, 平时工作得好好的。 但是, 某节日当天, 某接口的成功率急剧下降。

        过程不详说, 经查, 是节日当天, 业务buffer超过了64K, 使用udp的sendto函数必然会失败。

        改用tcp的send后, 接口的成功率就恢复了。

        为什么呢?  在前面的博文中, 我们已经说了sendto(最大传65507字节)和send函数(可以超过65507字节)的区别, 其实就是udp和tcp的区别。


        所以, 在使用sendto函数时, 一定要对buffer长度进行判断, 而且, 调用sendto失败的时候, 要打印错误log.  对于长buffer, 还是用tcp吧。



原创粉丝点击