通过网络桥接串行端口

时间:2015-03-23 10:31:00

标签: linux sockets networking

对于使用SerialPorts进行通信的应用程序(确切地说是Modbus RTU),我需要通过网络桥接SerialPort以进行测试。

所以我想进行以下设置:

Device        |     Network      |      PC

SerialPort    |------------------|    SerialPort
Map Serialport|                  | Map network to Serialport
   to Network |                  |   

我已经使用socat开始了第一部分。

我用

打开了PC上的TCP端口
nc -l 8080

在我使用的设备上

socat  pty,link=/dev/virtualcom0 tcp:PC-IP:8080

/dev/virtualcom0上写的所有内容映射到端口8080上的PC-IP。

但是现在我有问题将套接字映射回Serialport。

socat tcp:PC-IP:9123 pty,link=/dev/virtualport0

这给了我一个Connection Refused,这是显而易见的,因为我使用了TCP并且设备已经使用了端口。
所以我尝试了

socat  pty,link=/dev/virtualcom0,raw  udp:PC-IP:8080

并将其他所有内容更改为UDP。

但是我的电脑上的/dev/virtlalcom0/没有任何内容。

1 个答案:

答案 0 :(得分:4)

tcp连接的一端需要侦听端口(您启动的第一个端口),第二端连接到端口。

对于第一方做:

socat tcp-listen:8080 pty,link=/dev/virtualport0

对于第二方做:

socat pty,link=/dev/virtualcom0 tcp:IP-of-other-machine:8080

忘记netcat,你不需要它。