首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用虚拟tty链接和fork的socat删除了我的pty链接

使用虚拟tty链接和fork的socat删除了我的pty链接
EN

Stack Overflow用户
提问于 2013-12-12 07:36:15
回答 2查看 15.2K关注 0票数 4

我需要能够多路复用tcp连接到单个虚拟tty,用于测试通过串行端口通信的软件。我一直在使用以下命令创建一个服务器,该服务器侦听tcp端口,然后将数据转发到PTY。

代码语言:javascript
复制
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,但是没有成功。我的命令是:

代码语言:javascript
复制
socat -d -d file:/dev/tty1,nonblock,echo=0,raw TCP-LISTEN:11313,reuseaddr,fork

我的要求是:能够在一端将一块软件连接到串行tty,然后在另一端连接多个tcp客户端。Tcp客户端消息传递经过适当的序列化和多路复用,因此消息不会重叠到达。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-21 03:48:28

好吧,我似乎找到了一个自己的解决方案。您必须首先创建虚拟空调制解调器对,然后打开虚拟空调制解调器对的一端,并将其与TCP侦听器链接。

代码语言:javascript
复制
socat -d -d PTY,raw,echo=0,link=/dev/ttyVA00 PTY,raw,echo=0,link=/dev/ttyVB00

然后

代码语言:javascript
复制
socat -d -d open:/dev/ttyVA00,nonblock,echo=0,raw TCP-LISTEN:11313,reuseaddr,fork 

我可以想连接多少客户端就连接多少客户端,一切似乎都在正常工作。

票数 7
EN

Stack Overflow用户

发布于 2014-05-07 05:24:29

为什么不直接使用"unlink-close=0“呢?

例如:

代码语言:javascript
复制
socat -d -d PTY,link=/dev/ttyV1,waitslave,echo=0,raw,unlink-close=0 TCP-LISTEN:11313,reuseaddr,fork
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20532195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档