Eu tenho um processo que escuta um IP:port
- na verdade, é o spark streaming que se conecta a um soquete. A questão é que, de alguma forma, desejo criar um servidor que se conecte ao spark em uma porta e os dados sejam transmitidos para esse servidor a partir de outra porta.
Por exemplo, o exemplo de streaming em spark usa o utilitário netcat (por exemplo nc -lk 5005
). No entanto, tenho outro serviço que escuta as mensagens recebidas e depois cuspe uma mensagem. Então, eu preciso de algum tipo de servidor que possa ouvir as mensagens do serviço A e passá-las para acionar.
Meu serviço A depende de soquetes. E meu consumidor de faíscas depende de soquetes.
Aqui está o que eu fiz até agora é o encaminhamento de porta em porta, mas isso não parece funcionar:
nc -X 4 -x 127.0.0.1:5005 localhost 5006
Com a ideia de que o serviço A:5005
-> socket -> 5006
-> Spark
Não consigo encontrar a maneira correta de fazer isso funcionar.
Algumas respostas sugeriram o seguinte:
socat tcp-l:5005,fork,reuseaddr tcp:127.0.0.1:5006
Meu receptor de vela de ignição não parece ou não consegue se conectar. Eu recebo o erro:Error connecting to 127.0.0.1:5006 - java.net.ConnectException: Connection refused
fonte
Respostas:
você não pode usar apenas
nc
para encaminhar tráfego,nc
não possuikeep-alive
oufork
modovocê deve usar outras ferramentas
nc
; por exemplo, usesocat
ouncat
este comando escuta na porta
5050
e encaminha tudo para a porta2020
ncat
consulte Mais informaçãoE você pode usar outras ferramentas:
Ouça na porta 1234 e encaminhe-a para a porta 4567 no endereço "1.1.1.1"
Ouça na porta 1234 e encaminhe-a para a porta 4567 na fonte "1.1.1.1"
redir ( código fonte )
./redir :1234 1.1.1.1:5678
fonte
gost
parece incrível embora ....)