gpt4 book ai didi

python - 检测 tcp 客户端何时不活动超过 5 秒

转载 作者:可可西里 更新时间:2023-11-01 02:53:26 27 4
gpt4 key购买 nike

我正在尝试进行 tcp 通信,其中服务器每 x 秒通过套接字发送一条消息,并且应该在客户端在 5 秒内未发送任何消息的特定条件下停止发送这些消息。更详细地说,客户端还发送常量消息,这些消息在与上述相同的套接字上都被服务器忽略,并且可以在任何未知时间停止发送它们。为简单起见,这些消息用作事件消息以通知服务器通信仍然相关。

问题是,如果我想从服务器发送重复的消息,我不能让它“变得忙碌”并开始接收消息,因此我无法检测到新消息何时从另一端到达并采取相应的行动。

问题与编程语言无关,但更具体地说,我使用的是python,无法访问客户端的代码。

是否可以选择在单个套接字上同时接收和发送消息?

谢谢!

最佳答案

选项 1

使用两个线程,一个写入套接字,第二个从套接字读取。

这是可行的,因为套接字是全双工的(允许双向同时访问)。

选项 2

使用单个线程管理所有使用 select.epoll 的 keep alives。这样一个线程可以处理多个客户端。但请记住,如果这不是唯一使用套接字的线程,您可能需要自己处理线程安全

关于python - 检测 tcp 客户端何时不活动超过 5 秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46833561/

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