Как добавлять строки к данным socat?

#socat

#socat

Вопрос:

Я выполняю некоторую переадресацию портов следующим образом:

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

Данные в формате ASCII.
Каждая строка завершается CR / LF.
У меня есть строки заголовка и трейлера, в которые я хочу обернуть все переданные строки.

Пример:

(заголовок — «начало», а трейлер — «, конец»)

пользователь отправляет «ABC<CR, LF>»

socat отправляет «start, ABC, end<CR, LF>».

Возможно ли что-то подобное?

Ответ №1:

Socat может передавать каждую строку, введенную через awk, следующим образом:

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

my.awk:

 {
print "start," $1 ",endn";
fflush()
}
  

Спасибо Герхарду, автору socat.