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
で作成したデータが受信されない理由を理解しようとしていますが、nc
UDPプロキシを介してデータが受信されます。
Amazon Linux 4.14.101-75.76.amzn1.x86_64の使用
答え1
モニタリングを設定しました。データグラムsocat
+でソケットを接続しUNIX-RECV:
て転送しようとします。小川ソケットnc
対。
2番目のケースは、-u
欠落しているフラグを追加して両方がnc
データsocat
グラムソケットを使用するために機能します。代理人がいることとは何の関係もありません。