socatを使用して、TCPサーバーとシリアルポートを介して接続されたクライアント間にブリッジを作成しようとしています。
次のコマンドを使用してTCPサーバーをシミュレートします。
socat tcp-listen:8888,reuseaddr -
私はシリアルデバイスをシミュレートするためにptyを使用します。次のコマンドを使用して単純なブリッジを作成します。
socat -d -d TCP:localhost:8888 pty,rawer
これはうまくいきますが、2つのデバイス間のメッセージ内容を記録したいと思います。
これを行うには、次のコマンドを試しました。
socat -d -d TCP:localhost:8888 SYSTEM:'tee server.log | socat -d -d - pty | tee client.log'
これはうまくいくようですが、私の問題はサーバー側でエコーが発生することです。
ベストアンサー1
解決策は予想より簡単でした。-v
クライアントとサーバー間で転送される内容をstderrに記録するオプションを追加するだけです。私の例では、次のようになります。
socat -v TCP:localhost:8888 pty,rawer &> com.log