1

使用嵌入式 Linux 开发板,我需要组合一个小部件来执行以下操作:

  • 通过物理串行端口读取数据包,并将这些数据包中继到多个 IP 地址(最多 20 个;IP 目标从配置文件中读取)。
  • 还可以使用自定义程序“嗅探”那些串行数据包,可能是用c.

作为具有编程背景的人,(对我来说)最明显的解决c方案是从头开始创建一个程序来实现上述目标。然而,因为这是我需要快速整理的东西,而且因为我需要一个借口来了解更多关于现有 Linux 命令行程序和脚本编写(我不太擅长)的信息,所以我想知道是否有很多这可以通过现有的命令行程序和 shell 脚本来实现。然后,我从头开始编写的唯一部分是我的数据包嗅探器(调用它sniffer.c)。

我理解这一点,netcat并且socat可以用于设备和地址之间的中继,并且我已经开始尝试两者。socat我突然想到,我可以通过运行多个实例来将串行数据从 TTY 端口中继到远程 IP 地址,从而避免开发和测试 TCP/IP 软件。每个实例都socat可以处理一个特定的远程 IP 地址。

这听起来是否可行,如果是这样,我如何有效地“多路复用”来自/dev/ttyS0(例如)的流作为多个实例的源socat加上一个实例sniffer.c?一种方法是将读取的数据中继/dev/ttyS0到缓存文件,然后让我的socat实例和sniffer.c所有人都对该文件具有只读访问权限吗?

4

0 回答 0