![我可以通过“socat”获得 8 位干净连接吗?](https://linux22.com/image/16383/%E6%88%91%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87%E2%80%9Csocat%E2%80%9D%E8%8E%B7%E5%BE%97%208%20%E4%BD%8D%E5%B9%B2%E5%87%80%E8%BF%9E%E6%8E%A5%E5%90%97%EF%BC%9F.png)
这个问题主要是关于“socat”,但这里有一些背景知识:
我正在尝试(主要与怀旧有关)编写一个与 VirtualBox 一起使用的虚拟调制解调器驱动程序。它应该侦听 VirtualBox 连接到虚拟客户的套接字,并模拟 (a) 标准 Hayes 命令集和 (b) 使用“atd some.host.name”连接到远程系统。大多数情况下它可以工作,但我遇到了数据传输问题。我认为问题是我的,因为我很少有机会处理多通道通信、选择循环等问题......
...所以我想我会使用“socat”命令对我的解决方案进行原型设计,如下所示:
socat UNIX-CONNECT:/tmp/vbox.port EXEC:"telnet -E8 some.remote.host"
这有点像我的解决方案——基本的交互式打字似乎很好,但尝试文件传输,它就失败了。我也尝试过这个,以防万一存在某种 tty 线路规则:
socat UNIX-CONNECT:/tmp/vbox.port EXEC:"telnet -E8 some.remote.host",pty,raw,cs8
那效果并没有更好。
我想知道这里是否有人有解决这个问题的想法。问题不在于 telnet,而在于 telnet。 using-E8
提供了一个 8 位干净路径,该路径本身可以正常工作(例如,当不参与此类 pty 代理时)。
这显然不是一个关键问题,但我希望其他人至少会觉得它有点有趣。
答案1
虽然你说 telnet 不是罪魁祸首,但我会尝试将其删除。
您尝试过以下方法吗?
socat UNIX-CONNECT:/tmp/vbox.port tcp:some.remote.host:23
这本身应该是 8 位干净的。