이 질문은 주로 "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
그것은 더 이상 작동하지 않습니다.
여기 누군가가 이 문제를 해결할 아이디어가 있는지 궁금합니다. 문제는 텔넷에 있는 것이 아닙니다. using은 -E8
그 자체로 잘 작동하는 8비트 깨끗한 경로를 제공합니다(예를 들어, 그러한 pty 프록시에 참여하지 않는 경우).
이것은 분명히 중요한 질문은 아니지만 다른 사람들이 적어도 어느 정도 흥미를 느끼기를 바랍니다.
답변1
텔넷이 원인이 아니라고 하셨는데, 제거해 보도록 하겠습니다.
다음 방법을 시도해 보셨나요?
socat UNIX-CONNECT:/tmp/vbox.port tcp:some.remote.host:23
이 자체는 8비트 깨끗해야 합니다.