У меня есть процесс, который слушает IP:port
- на самом деле это потоковое зажигание, которое подключается к сокету. Проблема заключается в том, что я хочу каким-то образом создать сервер, который подключается к серверу Spark на одном порту, и данные передаются на этот сервер с другого порта.
Например, пример потоковой передачи искры использует утилиту netcat (например nc -lk 5005
). Однако у меня есть другой сервис, который прослушивает входящие сообщения, а затем выкладывает сообщение. Поэтому мне нужен какой-то сервер, который может прослушивать сообщения от службы А и передавать их на спарк.
Мой сервис А, опирается на сокеты. И мой искровой потребитель полагается на розетки.
Вот что я сделал до сих пор, это переадресация с порта на порт, но это, похоже, не работает:
nc -X 4 -x 127.0.0.1:5005 localhost 5006
С мыслью, что сервис A:5005
-> розетка -> 5006
-> Spark
Я не могу найти правильный способ сделать эту работу.
Некоторые ответы предложили следующее:
socat tcp-l:5005,fork,reuseaddr tcp:127.0.0.1:5006
Мой приемник искровых розеток не подключается или не может подключиться. Я получаю ошибку:Error connecting to 127.0.0.1:5006 - java.net.ConnectException: Connection refused
источник
Ответы:
Вы не можете использовать только
nc
для прямого трафика,nc
не имеютkeep-alive
илиfork
режимвместо этого вы должны использовать другие инструменты
nc
; например использоватьsocat
илиncat
эта команда слушает порт
5050
и перенаправляет все на порт2020
ncat
ПодробнееИ вы можете использовать другие инструменты:
Прослушайте порт 1234 и перенаправьте его на порт 4567 по адресу «1.1.1.1».
Слушайте на порт 1234 и направить его в порт 4567 на адрес «1.1.1.1» источник
redir ( исходный код )
./redir :1234 1.1.1.1:5678
источник
gost
хотя выглядит потрясающе ....)