
ネットワーク上の他の場所から継続的に着信メッセージを受信するために、ターミナルでコマンドを実行する必要があります。メッセージの長さの定式化は制御できません。ただし、コマンドは一度に 1 つの完全なメッセージを受信して印刷できます (このコマンドも制御できません)。
私の仕事は、このメッセージストリームをローカルポートに転送することです。そのポートをリッスンしているアプリが、さらにメッセージを処理します。ここで問題があります。アプリで受信バッファを設定する必要があります(たとえば1024バイト)。TCPプロトコルは(よく議論されているように)ここ) の場合、メッセージは元の状態のまま送信されませんchunk
。また、メッセージの長さは一定ではない場合があります (以下の例のように)
コマンドが吐き出すメッセージの先頭と末尾に特殊文字を 1 つ追加して、反対側で処理できるようにしたいと考えています。より具体的な例を以下に示します。
ターミナルで、このコマンドを実行します。
mycommand | tee | netcat localhost 2003
このコマンドは、メッセージを元のチャンクで受信し、ポート 2003 に転送します。
action_1_timestamp_2021_6_09_10_34_23_abort
action_2_timestamp_2021_6_09_10_34_34_success
...
action_193848_timestamp_2021_6_23_10_34_23_hold
上記の各行を次のように折り返すにはどうすればよいでしょうか。
<action_1_timestamp_2021_6_09_10_34_23_abort>
によって転送される前にnetcat localhost 2003
。私は bash スクリプトにあまり詳しくありません。