我需要在终端中运行一个命令来连续接收来自网络其他地方的传入消息。我无法控制消息长度的制定。但是,该命令能够一次接收和打印一条完整的消息(我也无法控制这个命令)。
我的任务是将此消息流转发到本地端口。监听该端口的应用程序将进一步处理这些消息。问题如下:我必须在应用程序中设置一个接收缓冲区(例如 1024 字节),并且按照 TCP 协议(正如广泛讨论的那样)这里),消息只是通过,而不是原来的chunk
。而且消息的长度可能不是恒定的(如下面我的例子)
我想在命令输出的消息的开头和结尾处附加一个特殊字符,以便在另一端处理它们。这是一个更具体的例子:
在终端上,我运行此命令;
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 脚本不太熟悉。