我正在使用 Python 为数字收音机制作模拟器。无线电通过 RF 中继一个 RS-232 端口和一个以太网端口,一对无线电构成无缝管道。因此,模拟器将成对使用,它们之间的管道模拟射频链路,允许用户使用物理接口、虚拟接口或隧道连接到每一端。
对于 RF 串行端口,我使用 PySerial 和虚拟串行端口使模拟器尽可能通用:我可以将模拟器连接到物理串行端口、网络套接字或另一个本地程序。除了用于在每个不同操作系统上创建虚拟串行端口的工具之外,这种方法是完全跨平台的。
我希望模拟器能够通过虚拟接口与本地程序联网,通过共享网络接口与远程程序联网,并通过专用于模拟器的本地物理接口与远程程序联网。但到目前为止,我还没有找到一种直接的方法来做到这一点。我一直在研究 SLIP/PPP、TAP/DUN、pcap/SOCK_RAW 和其他可能性,但没有发现明显或通用的解决方案。
关键的困难似乎在于,这涉及到整个以太网接口,低于 IP 级别,在以太网协议本身的级别:如果它只有几个端口,解决方案将相对简单。还是我错过了一些非常明显的东西?
如何使用 Python 以与 RF 串行接口解决方案一样通用的方式创建和使用 RF 以太网接口?