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

How can I send a command to all connected clients from a putty terminal window?

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

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

谢谢

老实说,最好的办法是一次只发送一个。

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

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

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

对于 'kill switch',我建议领导向客户发送 'keep alive' 消息。然后客户端将自动关闭(看门狗定时器),即使所有通信都丢失了。

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