追加読書

追加読書

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対。

2番目のケースは、-u欠落しているフラグを追加して両方がncデータsocatグラムソケットを使用するために機能します。代理人がいることとは何の関係もありません。

追加読書

関連情報