추가 읽기

추가 읽기

Unix 도메인 소켓을 통해 데이터가 전송되지 않는 이유를 디버깅하려고 합니다.

UDS를 통해 통신해야 하지만 그렇지 않은 2개의 애플리케이션이 있습니다.

테스트하기 위해 다음을 수행했습니다.

를 사용하여 socat다음과 같은 소켓을 수신합니다.

socat -x -u UNIX-RECV:/tmp/dd.sock STDOUT

그리고 netcat을 사용하여 다음과 같이 데이터를 보냅니다.

echo "hello" | nc -U -w1 /tmp/dd.sock

아무 일도하지.

그러나 다음과 같이 socat를 프록시로 설정하고 UDP 포트에서 수신하고 소켓에 쓰는 경우:

socat -s -u UDP-RECV:9988 UNIX-SENDTO:/tmp/dd.sock

netcat그런 다음 UDP 포트를 통해 보냅니다 .

echo "Hello" | nc -u localhost 9988

또한 내 클라이언트 응용 프로그램이 프록시에 UDP를 쓰도록 할 수 있었고 Unix 소켓에 쓰기가 실패한 경우 성공했습니다.

socat에서 작성한 데이터가 수신되지 않는 이유를 이해하려고하는데 ncUDP 프록시를 거치면 데이터가 수신됩니다.

Amazon Linux 4.14.101-75.76.amzn1.x86_64 사용

답변1

모니터링을 설정했습니다.데이터그램socat+ 로 소켓을 연결 UNIX-RECV:하고 전달을 시도합니다.개울소켓 nc대.

두 번째 경우는 -u누락된 플래그를 추가하여 nc둘 다 socat데이터그램 소켓을 사용하기 때문에 작동합니다. 대리인이 있는 것과는 아무런 관련이 없습니다.

추가 읽기

관련 정보