アプリケーションがソケットを介して通信する方法

アプリケーションがソケットを介して通信する方法

マイコンピュータでは、オーディオが機能しているときや動作しないことがあります。私はこの問題を解決したい。まず、pulseaudioを使用していることを確認しました。私はpulseaudioプロセスを追跡してこれを行います。

[pid  2289] send(28, "\0\0\0\24\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0L\0\0\0=L\377\377\377\377L\0"..., 40, MSG_NOSIGNAL) = 40

同時に、アプリケーションスピーカーテストはプロセス2289、パルスオーディオからデータを受信します。多くの行は次のとおりです。

[pid 29146] recvmsg(7, {msg_name(0)=NULL, msg_iov(1)=[{"\0\0\0\0\377\377\377\377\0\0\0\20\0\0\0\0@\0\0\0", 20}], msg_controllen=24, {cmsg_len=24, cmsg_level=SOL_SOCKET, cmsg_type=SCM_CREDENTIALS{pid=2289, uid=0, gid=0}}, msg_flags=0}, 0) = 20

これでソケットがネイバーであることがわかります。

# ll /proc/29146/fd/7
lrwx------ 1 root root 64 Apr  4 16:46 /proc/29146/fd/7 -> socket:[114414]
# ll /proc/2289/fd/28
lrwx------ 1 root root 64 Apr  4 15:13 /proc/2289/fd/28 -> socket:[114415]

これは2つの質問をもたらします。

  • パルスオーディオがデータを送信し、スピーカーテストがデータを受信するのはなぜですか?その逆だったらいいですね。
  • 114414と114415ソケットが接続されている場所はどこにありますか?トラフィックをスニッフィングできますか?

ところで、私はこの冒険についてブログを書いています。http://www.linuxintro.org/wiki/Sound_troubleshooting#strace.27ing_sound_II

ベストアンサー1

私はここで答えを見つけました。https://stackoverflow.com/questions/820782/how-do-i-find-out-what-programs-on-the-other-end-of-a-local-socket/4834881#4834881

正解は

ss -p | grep <socket-number>

おすすめ記事