该应用程序,将其命名为“去引擎1' 是一个通过神经网络运行的围棋游戏引擎。它真的很强大,我想在我的网络上的不同机器上对其进行基准测试。它旨在与充当 Go 引擎服务器的 Go 客户端(例如 Sabaki 或 GoGui)一起使用。 Go 客户端可以配置为运行两个本地 Go 引擎(例如go-engine-1 与 go-engine-2)彼此对抗。就我而言,我希望第二个引擎在不同的机器上运行。该应用程序使用“Go Text Protocol”(简称 gtp)向 Go 客户端发送/接收基于文本的 stdin/stdout。 Go 客户端不够智能,无法直接使用第二个引擎的 shell 命令(如 ssh)进行配置。 Gtp 确实很笨,但 Go 引擎足够智能(使用 gtp 作为命令行参数),可以使用 ssh 远程向 shell 发送/接收 I/O。我需要基于网络的 Go 引擎(脚本)的 I/O 来与 Go 客户端进行通信,就像它是一个独立的本地 Go 引擎一样。
我想我可以使用 netcat [/usr/bin/nc] 结合 ssh 为第二个引擎创建基于 shell 的脚本。正如您可能猜测的那样,这超出了我的专业范围。该脚本必须是独立的,并且在 Go 客户端看来是本地 Go 引擎。因此,端口、IP 地址或用户帐户的任何设置都必须在 shell 脚本内设置或从配置文件中引用。我已经使用 ssh 密钥配置了两台计算机,因此在登录或远程发送命令时不必向任何一台计算机发送凭据。如果需要,我可以提前在任一 (Linux) 计算机上设置或配置端口,因为我在两台计算机上都拥有 root 权限。
我对此进行了修改,并尝试了类似下面的脚本,但没有成功。我在这里看到过类似的帖子,所以我必须相信这是可能的,并且通过正确的专业知识可以轻松实现。 TIA--wirelesstvmc
#!/bin/sh
#/usr/bin/nc 远程机器 22 | /usr/bin/ssh -t user1@remotemachine goengine-2 gtp /usr/bin/ssh -f -L 9001:127.0.0.1:9000 user1@remotemachine sleep 10 /usr/bin/nc 127.0.0.1 9001 | goengine-1 gtp