我需要能够多路复用tcp连接到单个虚拟tty,用于测试通过串行端口通信的软件。我一直在使用以下命令创建一个服务器,该服务器侦听tcp端口,然后将数据转发到PTY。
socat -d -d PTY,link=/dev/ttyV1,waitslave,echo=0,raw TCP-LISTEN:11313,reuseaddr,fork我的问题是,当端口11313上的tcp客户机断开连接时,socat会删除我到/dev/ttyV1的链接,从而终止与其他所有连接的会话。
有没有办法保持这种联系?或者在socat之外创建一个伪tty,这样我就不必担心维护它了?我已经尝试了/dev/tty1和/dev/ttyS1,但是没有成功。我的命令是:
socat -d -d file:/dev/tty1,nonblock,echo=0,raw TCP-LISTEN:11313,reuseaddr,fork我的要求是:能够在一端将一块软件连接到串行tty,然后在另一端连接多个tcp客户端。Tcp客户端消息传递经过适当的序列化和多路复用,因此消息不会重叠到达。
发布于 2013-12-21 03:48:28
好吧,我似乎找到了一个自己的解决方案。您必须首先创建虚拟空调制解调器对,然后打开虚拟空调制解调器对的一端,并将其与TCP侦听器链接。
socat -d -d PTY,raw,echo=0,link=/dev/ttyVA00 PTY,raw,echo=0,link=/dev/ttyVB00然后
socat -d -d open:/dev/ttyVA00,nonblock,echo=0,raw TCP-LISTEN:11313,reuseaddr,fork 我可以想连接多少客户端就连接多少客户端,一切似乎都在正常工作。
发布于 2014-05-07 05:24:29
为什么不直接使用"unlink-close=0“呢?
例如:
socat -d -d PTY,link=/dev/ttyV1,waitslave,echo=0,raw,unlink-close=0 TCP-LISTEN:11313,reuseaddr,forkhttps://stackoverflow.com/questions/20532195
复制相似问题