gpt4 book ai didi

python - 检查服务器是否在线的合理超时是多少?

转载 作者:太空宇宙 更新时间:2023-11-03 11:56:51 25 4
gpt4 key购买 nike

我必须通过 UDP 协议(protocol)查询约 10000 个游戏服务器,以检查它们是否每 15 分钟在服务器上在线。我的代码可以正常工作,但离线服务器阻塞线程会极大地减慢进度。我使用 20 个线程,更多线程会导致 Python 的 UDP 套接字速度变慢。

目前我在决定服务器离线之前使用五秒超时。这个限制可以进一步降低,还是必须提高?


请不要建议使用心跳,我的服务器是一个非官方的主服务器,用于一个必须吸取并且不会接收大部分心跳的游戏。

最佳答案

您不必使用同步通信(即发送数据包、阻止并等待结果),尤其是在使用 UDP 时。只需让一个线程发送 ping,另一个线程在同一个套接字上不断接收 pong。如果您必须对结果进行复杂的处理,您可能需要使用另一个。

挑战在于发送逻辑——您不想让自己的互联网连接不堪重负,因此我建议采用可配置的数据包速率。此外,UDP 数据包可能会在网络中丢失,因此在放弃之前至少重新发送一次或两次。作为超时,我建议大约 2 秒,因为如果对游戏(即高度延迟敏感的)服务器的 ping 花费的时间比这更长,它可能无论如何都无法使用。

关于python - 检查服务器是否在线的合理超时是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6478288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com