Перенаправление TCP-сокетов от нескольких последовательных клиентов к одному постоянному сокетному соединению с сервером

Предполагая, что вы работаете в python virtualenv (как и должно быть), вы можете сделать:

pip install subprocess32

в активированном virtualen.

Вы также можете установить это как пакет:

apt-get install -y python-subprocess32

Но это не даст вам дополнительной функциональности в любой программе, запущенной в virtualenv, и поскольку вы не должны использовать pip для установки на систему Python, вы ограничены (т.е. должны ограничиться) в вашей программе python модулями python, доступными через apt-get.

2
02.12.2016, 00:13
1 ответ

С socat:

mkfifo pipe &&
<pipe socat tcp-listen:"$portB",reuseaddr,fork,bind=localhost - |
  socat - tcp:localhost:"$portC" >pipe

Или даже лучше (избегая fifo и дополнительного уровня межпроцессного взаимодействия):

socat "tcp:localhost:$portC" \
      "exec:\"socat - tcp-listen:$portB,reuseaddr,fork,bind=localhost\",nofork"

Из-за nofork, второй socat будет работать со своими stdin и stdout, напрямую соединенными с сокетом на C.

0
27.01.2020, 22:44

Теги

Похожие вопросы