使用pyuv实现tcpping功能, 发现连接成功率偶尔会很低,但抓包发现实际的成功率要比探测结果高。
程序流程: 创建pyuv.Timer, 进行周期连接以及判断超时。创建socket, 添加到pyuv.loop中,进行可写事件监听, connect。
当出现一次连接超时后, 接下来的连接,都没有可写事件,无法进入回调函数,导致统计的成功次数低。(程序流程是当出现超时后,pyuv.watch.stop(), 关闭socket, 紧接着重新创建socket, 发连接。 基本上两次socket 文件描述符 值是一样的)

超时后发送的新连接, 好像是前一次连接的四次挥手没有完成,就发送了新的连接。
修改程序, 当超时后不立即发生新的连接,而是到了下一次周期后再进行新连接,这样就没有发现之前的问题, 但是这个肯定不止最好的解决办法。
问题原因以后更新。

探讨使用PyUV实现TCP Ping功能时遇到的连接成功率低问题。在周期性连接及超时判断流程中,发现超时后新连接的可写事件无法触发,导致统计成功率偏低。通过调整连接时机,虽暂时解决问题,但仍需深入探究根本原因。
928

被折叠的 条评论
为什么被折叠?



