测试模拟工具发送大数据量消息时,发现时而发送成功,时而失败。追踪代码发现,抛出的是一个错误码为10035的socket错误。上网查资料发现这个错误码描述是Service temporarily unavailable.也就是说有可能send的时候遇到socket缓冲区满,无法写入,引起发送失败。
如果是这样的话,那么这就是一个常规的异常情况,需要对它进行处理,而不是异常退出。
最后代码改成这个样子,send然后分析返回结果,如果错误,且错误码为10035,那么就重发,直到发成功时,break。
目前尚不知道,这样改的副作用有没有,反正现在问题暂时解决鸟。