Socatは、PTYが開いているときにのみTCPを開きます。

Socatは、PTYが開いているときにのみTCPを開きます。

ポート23でTCP接続を許可するリモートデバイスと仮想PTYを接続しようとしています。ターゲットデバイスのソケットの開閉は次のとおりです。重要イベントとデバイスの操作。

socat現在、以下を使用してこれを実行しようとしています。

socat pty,link=/dev/ttyACM99,raw tcp:192.168.0.15:23

/dev/ttyACM99デバイスを開いてデータを読み書きできるので動作しますが、socatコマンドが実行されるとTCPポートが開き、終了したsocatときにのみ閉じます。

私が必要とするのは、他のソフトウェア(気にしない)がTCPポートを開いた後にのみTCPポートを開くことです/dev/ttyACM99。閉じると/dev/ttyACM99、TCP接続を削除する必要があります。

socatマニュアルページやインターネット検索(インターネット検索はかなりトリッキーなことにもかかわらず)でこれがうまくいくと言う内容を見つけることができず、socat私自身のパイププログラムを書くのに苦労したくありません(できれば本当に必要な場合)。


修正する:

PTYパイプのパラメータが見つかり、必要に応じてwait-slave機能しますが、socatPTYを閉じると終了しますが、これは理想的ではありません。

socat pty,link=/dev/ttyACM99,raw,wait-slave tcp:192.168.0.15:23

プログラム全体を閉じるのではなく、ターゲットソケットのみを閉じるなどのオプションをwait-slave使用できますか?wait-slave現在実行中で、while 'true'これまで動作しているようですが、理想的ではありません。

ベストアンサー1

おすすめ記事