对于使用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/
没有任何内容。
答案 0 :(得分:4)
tcp连接的一端需要侦听端口(您启动的第一个端口),第二端连接到端口。
对于第一方做:
socat tcp-listen:8080 pty,link=/dev/virtualport0
对于第二方做:
socat pty,link=/dev/virtualcom0 tcp:IP-of-other-machine:8080
忘记netcat,你不需要它。