某次, 某同学使用udp进行数据传输, 平时工作得好好的。 但是, 某节日当天, 某接口的成功率急剧下降。
过程不详说, 经查, 是节日当天, 业务buffer超过了64K, 使用udp的sendto函数必然会失败。
改用tcp的send后, 接口的成功率就恢复了。
为什么呢? 在前面的博文中, 我们已经说了sendto(最大传65507字节)和send函数(可以超过65507字节)的区别, 其实就是udp和tcp的区别。
所以, 在使用sendto函数时, 一定要对buffer长度进行判断, 而且, 调用sendto失败的时候, 要打印错误log. 对于长buffer, 还是用tcp吧。