Quero que um servidor de eco UDP obtenha pacotes e responda exatamente o que recebeu. Como posso simplesmente fazer isso usando netcat
or socat
? Ele deve permanecer vivo para sempre e manipular pacotes provenientes de vários hosts.
netcat
socat
echoserver
Mohammad Hedayati
fonte
fonte
Respostas:
Outra ferramenta semelhante ao netcat é a versão nmap,,
ncat
que possui muitos brindes embutidos para simplificar coisas como esta. Isso funcionaria:-e significa que executa / bin / cat (para repetir o que você digita)
-k significa manter vivo, que continua ouvindo após cada conexão
-u significa udp
-l 1235 significa que escuta na porta 1235
fonte
Eu costumava
socat -v PIPE udp-recvfrom:5553,fork
executar o servidor esocat - udp:localhost:5553
para clientes. Esta foi uma grande ajuda!fonte
socat TCP4-LISTEN:2000,fork EXEC:cat
Você também pode usar o socat (em vez de usar o netcat) como servidor de eco e o netcat como cliente.
Servidor de eco Socat (escuta na porta TCP 1234):
Cliente Netcat (conecta ao serverip na porta TCP 1234):
fonte
Você pode escrever um programa C que bifurca
nc -u -l -p 4321
e depois usa o dup (2) para conectar:Então, em um loop infinito, o pai lê de stdin e grava em stdout o que o pai lê.
fonte
socat -v PIPE UDP-LISTEN:5555,fork
, mas a segunda conexão é recusada. A propósito, ele funciona bem com o TCP-LISTEN. Eu estou evitando ao código, caso contrário, eu poderia escrever tudo em C.Se você estiver executando no Windows e usar um ambiente unix como o cygwin, o netcat migth não fornecerá o parâmetro -e. Isso funcionou muito bem para mim.
http://bansky.net/echotool/
fonte
netcat
solução pré-instalada em UbunutuO
netcat
pré-instalado no Ubuntu 16.04 vemnetcat-openbsd
e não tem-c
opção, mas o manual fornece uma solução:Exemplo de cliente:
TODO: como modificar o valor da string de entrada? O seguinte não retorna nenhuma resposta:
O exemplo do shell remoto, no entanto, funciona:
No entanto, não sei como lidar com solicitações simultâneas.
fonte