Estou tentando depurar por que os dados não estão sendo enviados por um soquete de domínio Unix.
Eu tenho 2 aplicativos que deveriam estar se comunicando por um UDS, mas não estão.
Para testar fiz o seguinte:
Usando socat
, eu escuto em um soquete como este:
socat -x -u UNIX-RECV:/tmp/dd.sock STDOUT
e usando netcat para enviar dados como este:
echo "hello" | nc -U -w1 /tmp/dd.sock
nada acontece.
Mas se eu também configurar o socat como um proxy, para ouvir uma porta UDP e escrever isso no soquete assim:
socat -s -u UDP-RECV:9988 UNIX-SENDTO:/tmp/dd.sock
Em seguida, enviar via netcat
para a porta UDP funciona:
echo "Hello" | nc -u localhost 9988
Também consegui fazer com que meu aplicativo cliente gravasse UDP no proxy e foi bem-sucedido onde não foi ao gravar no soquete unix.
Gostaria de entender por socat
que não recebe dados gravados nele por nc
, mas recebe se eu fizer proxy sobre UDP.
Uso do Amazon Linux 4.14.101-75.76.amzn1.x86_64