Сокат разделяет данные, а не дублирует их - PullRequest
0 голосов
/ 05 ноября 2019

socat -dd -u TCP:192.168.1.2:2222,reuseaddr,fork TCP-LISTEN:55555,reuseaddr,fork

Socat подключается к внешнему порту TCP, получает данные и начинает прослушивать порт 55555 на предмет подключения к нему. Перепробовал все варианты с указанными выше параметрами и без них по обоим адресам.

Результат таков: при подключении 2 клиентов к машине, на которой запущен socat через порт 55555, данные разделяются на два, а не дублируются.

Как действительно продублировать, чтобы все клиенты получили все данные?

РЕДАКТИРОВАТЬ:

Очевидно, я не тестировал все варианты. Кажется, это работает: socat -dd -u TCP:192.168.1.2:2222,reuseaddr,fork TCP-LISTEN:55555,reuseaddr

fork не должно быть во второй адресной части.

Что происходит сейчас, так это то, что следующая ошибка печатается без остановок:

2019/11/05 22:58:24 socat[11] N childdied(): handling signal 17
2019/11/05 22:58:24 socat[11] N successfully connected from local address AF=2 192.168.1.3:58418
2019/11/05 22:58:24 socat[11] N forked off child process 214
2019/11/05 22:58:24 socat[214] E bind(6, {AF=2 0.0.0.0:55555}, 16): Address in use
2019/11/05 22:58:24 socat[214] N exit(1)

Так что все еще что-то не так.

Я начинаю сомневаться, может ли socat действительно подключить куда-нибудь одно TCP-соединение , а затем дублировать и распространять его, какшироковещательный сервер ... Это говорит о том, что нет по TCP характеристикам: https://serverfault.com/a/570764

...