A resposta, se surgir - aparentemente há algum problema com o netcat quando usado assim - a socat forneceu uma solução:
Receba:
socat -u udp4-recv:8123 -
Enviar:
echo "test" | socat - udp4-sendto:127.0.0.1:8123
Eu tenho uma situação em que muitos dispositivos "inteligentes" estão me enviando dados via UDP. Não consigo alterar nada no final do envio.
Estou testando o nc (ou netcat), mas não consigo passar do seguinte:
Recebendo o comando final:
nc -l -u 8123
Teste enviando comando:
echo "test" | nc -u 127.0.0.1 8123
O primeiro pacote funciona bem, mas, em seguida, ambos os terminais parecem estar em algum tipo de suspensão e eu tenho que CTRL + C para tentar novamente. Uma vez que funcione, eu terei a extremidade de recebimento "continue ouvindo" (-k) e eu processarei os pacotes então
A resposta, se surgir - aparentemente há algum problema com o netcat quando usado assim - a socat forneceu uma solução:
Receba:
socat -u udp4-recv:8123 -
Enviar:
echo "test" | socat - udp4-sendto:127.0.0.1:8123
lado do servidor: nc -ul 127.0.0.1 1234
- ouça a conexão udp na porta 1234
também: nc -l 1234
lado do cliente: nc -u 127.0.0.1 1234
- conecte usando o udp para 127.0.0.1, porta 1234
Agora digite algo no lado do cliente e você o verá no lado do servidor. (Você também pode digitar no lado do servidor e passará para o cliente.)
Quando você executa echo "test" | nc -u 127.0.0.1 8123
, o lado do servidor permanece como antes, mas agora a entrada padrão de nc
no lado do cliente está vinculada ao descritor de canal. Quando você digita no teclado, não leva a lugar nenhum. nc
está esperando pela entrada do pipe, e o pipe já enviou tudo o que tinha para enviar. Então agora nc
está "congelado".
De acordo com a página man, você precisa passar o -q0
flag para nc
para fazer com que ele seja encerrado quando terminar.
Tags nc