Chcę, aby serwer echa UDP pobierał pakiety i odpowiadał dokładnie na to, co otrzymał. Jak mogę to zrobić za pomocą netcat
lub socat
? Powinien pozostać przy życiu na zawsze i obsługiwać pakiety pochodzące z kilku hostów.
netcat
socat
echoserver
Mohammad Hedayati
źródło
źródło
Odpowiedzi:
Kolejnym narzędziem podobnym do netcat jest wersja nmap
ncat
, która ma wiele wbudowanych gadżetów upraszczających takie rzeczy. To by działało:-e oznacza, że wykonuje polecenie / bin / cat (aby powtórzyć to, co wpisujesz)
-k oznacza utrzymanie przy życiu, że nasłuchuje po każdym połączeniu
-u oznacza udp
-l 1235 oznacza, że nasłuchuje na porcie 1235
źródło
Kiedyś
socat -v PIPE udp-recvfrom:5553,fork
działałem na serwerze isocat - udp:localhost:5553
dla klientów. To była świetna pomoc!źródło
socat TCP4-LISTEN:2000,fork EXEC:cat
Możesz także użyć socat (zamiast netcat) jako serwera echa i netcat jako klienta.
Serwer echa Socat (nasłuchuje na porcie TCP 1234):
Klient Netcat (łączy się z serverip na porcie TCP 1234):
źródło
Możesz napisać program C, który rozwidla,
nc -u -l -p 4321
a następnie używa dup (2) do połączenia:Następnie w nieskończonej pętli rodzic czyta ze standardowego wejścia i zapisuje na standardowym ekranie wszystko, co czyta rodzic.
źródło
socat -v PIPE UDP-LISTEN:5555,fork
, ale drugie połączenie zostanie odrzucone. Nawiasem mówiąc, działa dobrze z TCP-LISTEN.Jeśli pracujesz w systemie Windows i używasz środowiska uniksowego, takiego jak cygwin, netcat migth nie podaje parametru -e. Dla mnie to zadziałało.
http://bansky.net/echotool/
źródło
netcat
rozwiązanie wstępnie zainstalowane w Ubunutunetcat
Preinstalowany w Ubuntu 16.04 pochodzinetcat-openbsd
i nie ma-c
opcji, ale ręczny daje rozwiązanie:Następnie przykład klienta:
DO ZROBIENIA: jak zmodyfikować wartość ciągu wejściowego? Poniższe nie zwraca żadnej odpowiedzi:
Przykład powłoki zdalnej działa jednak:
Jednak nie wiem jak sobie radzić z równoległymi żądaniami.
źródło