这个问题主要是关于“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 位干净的。