如何在socat数据之前或之后添加字符串?

问题描述

我正在像这样进行一些端口转发:

socat tcp-listen:8000,reuseaddr,fork tcp:localhost:9000

数据为ASCII。 每条线均以CR / LF端接。 我有标题和结尾字符串,我想将所有传递的字符串包装在其中。

示例:

标题是“开始”,而尾部是“,结束”)

用户发送“ ABC

socat发送“开始,ABC,结束

有什么可能的吗?

解决方法

Socat可以通过管道通过awk输入的每一行都是这样的:

socat TCP-L:8000,reuseaddr,fork,nodelay SYSTEM:"gawk -f my.awk|socat - TCP\:iq\:9000"

my.awk:

{
print "start," $1 ",end\n";
fflush()
}

感谢socat的作者Gerhard。