Eu tenho um programa com um pacote Send an UDP to port xyz
e vou responder com alguns pacotes UDP! interface.
Descobri que posso enviar um pacote UDP com
echo <packetContent> | socat - udp:<dstIP>:<dstPort>,sp=<srcPort>
e escute (= apenas despeje seu conteúdo para stdout) para pacotes UDP com
socat - udp-listen:<srcPortFromPreviousLine>
Mas como juntar esses dois? Quando inicio a parte de escuta em uma janela a princípio, a porta já está em uso e não consigo enviar nada de lá em outra janela.
Como o grawity disse no comentário,
udp:
é bidirecional. Então eu posso usar apenas um comando:Isso envia o pacote e imprime todos os pacotes vindos de lá; se nenhum chegar, ele sai após 10 segundos (
-t 10
).Se suportado, use
reuseaddr
com ambos os comandos. eles serão comoDe
man 1 socat
: