我在使用 socat 时遇到了问题,它可能仅存在于我的环境中。
我需要将 USB 串行端口重定向到 TCP 端口。我使用以下方法,效果很好:
socat TCP-LISTEN:4444,fork,reuseaddr FILE:/dev/ttyUSB0,b19200,rawer
但是,上述问题是,每次我连接到端口 4444 时,USB 端口都会重置,从而重置 USB 设备。我认为这是按照设计,启动 socat 时 USB0 端口不会保持打开状态,只有当有人连接到端口 4444 时才会保持打开状态。有人知道如何让 socat 在启动时打开 USB 端口(而不是在有人连接时),并且在有人断开连接后不关闭吗?
答案1
您尝试在 socat 命令之前在 shell 脚本中打开 tty,这样当 socat open 并在稍后关闭它时,仍然会有一个打开的使用,因此它不应该重置。只需添加,例如,
exec 5</dev/ttyUSB0
这将把该设备作为文件描述符 5 打开,供脚本的其余部分使用。