J'ai un processus qui écoute sur IP:port
- en fait, c'est le streaming d'étincelles qui se connecte à une prise. Le problème est que je souhaite en quelque sorte créer un serveur qui se connecte à spark sur un port et les données sont diffusées sur ce serveur à partir d'un autre port.
Par exemple, l'exemple de streaming spark utilise l'utilitaire netcat (par exemple nc -lk 5005
). Cependant, j'ai un autre service qui écoute les messages entrants et recrache un message. J'ai donc besoin d'une sorte de serveur capable d'écouter les messages du service A et de les transmettre à spark.
Mon service A, repose sur des sockets. Et mon consommateur d'étincelles s'appuie sur des prises.
Voici ce que j'ai fait jusqu'à présent, c'est la redirection de port à port, mais cela ne semble pas fonctionner:
nc -X 4 -x 127.0.0.1:5005 localhost 5006
Avec l'idée que le service A:5005
-> socket -> 5006
-> Spark
Je n'arrive pas à trouver la bonne façon de faire ce travail.
Certaines réponses suggèrent ce qui suit:
socat tcp-l:5005,fork,reuseaddr tcp:127.0.0.1:5006
Mon récepteur de bougie ne semble pas ou ne semble pas se connecter. Je reçois l'erreur:Error connecting to 127.0.0.1:5006 - java.net.ConnectException: Connection refused
la source
Réponses:
vous ne pouvez pas utiliser uniquement
nc
pour le trafic vers l'avant, vousnc
n'avez paskeep-alive
ou lefork
modevous devez utiliser un autre outil à la place
nc
; par exemple utilisersocat
ouncat
cette commande écoute sur le port
5050
et transfère tout au port2020
ncat
Lire la suiteEt vous pouvez utiliser un autre outil:
Écoutez sur le port 1234 et transférez-le au port 4567 à l'adresse "1.1.1.1"
Écoutez sur le port 1234 et transférez-le au port 4567 sur l'adresse "1.1.1.1" source
redir ( code source )
./redir :1234 1.1.1.1:5678
la source
gost
semble génial quand même ....)