如何从 putty 终端窗口向所有连接的客户端发送命令?

问题描述 投票:0回答:2

我有 4 个机器人,它们有 Linux 操作系统,目前正在使用客户端-服务器模型相互通信。服务器(领导机器人)为每个连接到它的客户端创建一个线程。

但是我需要一个“终止开关”来立即停止所有机器人。我有一个可以停止机器人的功能,但是我需要一种方法来同时向所有连接的客户端发送此命令(或某种消息)。

linux sockets pthreads
2个回答
0
投票

当您发现问题并按“Enter”键停止时,人类的反应时间约为 250 毫秒。您可以向领导者发送一条消息并让它关闭其每个客户端,然后自行关闭。

对于“终止开关”,我建议领导者向客户端发送“保持活动”消息。即使所有通信都丢失,客户端也会自动关闭(看门狗定时器)。

如果确实很关键,您可以让领导者也需要来自 putty 终端的持续数据(按住某个键)。一旦数据停止(释放密钥)它就会停止,它的客户端也会停止。


0
投票

老实说,你最好的选择就是一次只发送一个。

我猜您正在使用 TCP 套接字在它们之间进行通信。无法使用 TCP 同时“立即”发送命令。

当然有一种方法......你可以让所有机器人监听一个多播地址,然后让领导者通过多播发送一条kill消息。唯一的问题是它将通过 UDP 进行。因此从属机器人不能保证收到它,就像 TCP 那样。

© www.soinside.com 2019 - 2024. All rights reserved.