I'm trying to debug why data isn't being sent over a Unix Domain Socket.
I have 2 applications which should be communicating over a UDS but aren't.
To test I've done the following:
Using socat
, I listen on a socket like this:
socat -x -u UNIX-RECV:/tmp/dd.sock STDOUT
and using netcat to send data like this:
echo "hello" | nc -U -w1 /tmp/dd.sock
nothing happens.
But if I also set up socat as a proxy, to listen to a UDP port, and write that to the socket like this:
socat -s -u UDP-RECV:9988 UNIX-SENDTO:/tmp/dd.sock
Then sending via netcat
to the UDP port works:
echo "Hello" | nc -u localhost 9988
I've also been able to get my client application to write UDP to the proxy and it's successful where is wasn't when writing to the unix socket.
I would like to understand why socat
doesn't receive data written to it by nc
, but does if I proxy over UDP.
Using Amazon Linux 4.14.101-75.76.amzn1.x86_64
socat
andnc
reproduces the problem. I shall update the question to make the question more clear. – Will Apr 03 '19 at 13:27