「socat」を介して8ビットクリーン接続を取得できますか?

「socat」を介して8ビットクリーン接続を取得できますか?

この質問は主に「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にはありません。 usingは-E8それ自体でうまく機能する8ビットクリーンなパスを提供します(たとえば、そのようなptyプロキシに参加していない場合)。

これは明らかに重要な質問ではありませんが、他の人が少なくともある程度興味を持っていることを願っています。

答え1

Telnetが原因ではないと言われましたが、削除してみましょう。

次の方法を試してみましたか?

socat UNIX-CONNECT:/tmp/vbox.port tcp:some.remote.host:23

これ自体は8ビットクリーンでなければなりません。

関連情報