如何在同一网络的路由器之间发送自定义消息

如何在同一网络的路由器之间发送自定义消息

我创建了一个包含 3 个路由器的网状网络,其中我必须在路由器之间交换一些短消息(即少于 5 个字符)。我的所有路由器都在 openwrt 上运行,因此它是一个 Linux 系统。使用 bash 脚本或任何 C 库是否可行?

答案1

是否可以使用 bash 脚本或者任何 C 库?

是的,在标准 libc 中,您可以找到全套“BSD 套接字”函数:socket()、bind()、listen()、connect() 等等。创建 TCP 或 UDP 套接字(取决于您的需要)并发送数据。

这是所有程序首先建立网络连接的方式。


Bash 本身可以建立 TCP 连接(使用重定向到虚拟 /dev/tcp/* 路径),但不能接受它们,也不能与 UDP 配合使用。可以使用外部工具(例如 netcat (nc) 或 socat)或您自己的 C 程序来实现这一点。

答案2

您没有建议频率,但使用 ssh 和公钥允许系统在系统之间 scp 文件非常容易。这确实有很多开销,但如果数据只需要偶尔传输并且非常容易编写脚本,则可能是可行的。(其他人建议使用 netcat,因为它很轻量,但不太安全,而且实施起来也不容易)

相关内容