Mam proces, który nasłuchuje IP:port
- w rzeczywistości jest to streaming strumieniowy, który łączy się z gniazdem. Problem polega na tym, że chcę w jakiś sposób stworzyć serwer, który łączy się z iskrą na jednym porcie, a dane są przesyłane strumieniowo do tego serwera z innego portu.
Na przykład, przykład przesyłania strumieniowego Spark wykorzystuje narzędzie netcat (na przykład nc -lk 5005
). Mam jednak inną usługę, która nasłuchuje wiadomości przychodzących, a następnie wypluwa wiadomość. Potrzebuję więc jakiegoś serwera, który może słuchać wiadomości z usługi A i przekazywać je do iskry.
Moja usługa A polega na gniazdach. A mój iskrowy konsument polega na gniazdach.
Oto, co do tej pory zrobiłem, to przekierowanie z portu na port, ale wydaje się, że to nie działa:
nc -X 4 -x 127.0.0.1:5005 localhost 5006
Z pomysłem, że usługa A:5005
-> gniazdo -> 5006
-> Spark
Nie mogę znaleźć właściwego sposobu, aby to zadziałało.
Niektóre odpowiedzi sugerują, co następuje:
socat tcp-l:5005,fork,reuseaddr tcp:127.0.0.1:5006
Mój odbiornik gniazda zapłonowego nie łączy się lub nie może się połączyć. Dostaję błąd:Error connecting to 127.0.0.1:5006 - java.net.ConnectException: Connection refused
źródło
Odpowiedzi:
nie można używać tylko
nc
do ruchu do przodu,nc
nie makeep-alive
lubfork
trybuzamiast tego musisz użyć innych narzędzi
nc
; na przykład użyjsocat
lubncat
to polecenie nasłuchuje na porcie
5050
i przekierowuje wszystko na port2020
ncat
Czytaj więcejI możesz użyć innych narzędzi:
Nasłuchuj na porcie 1234 i przekaż go do portu 4567 pod adresem „1.1.1.1”
Nasłuchuj na porcie 1234 i przekaż go do portu 4567 pod źródłem „1.1.1.1”
redir ( kod źródłowy )
./redir :1234 1.1.1.1:5678
źródło
gost
wygląda niesamowicie ...)