애플리케이션이 소켓을 통해 통신하는 방법

애플리케이션이 소켓을 통해 통신하는 방법

내 컴퓨터에서는 오디오가 작동할 때도 있고 작동하지 않을 때도 있습니다. 나는 이 문제를 해결하고 싶다. 먼저 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]

이로 인해 두 가지 질문이 생깁니다.

  • 펄스 오디오가 데이터를 보내고 스피커 테스트가 데이터를 받는 이유는 무엇입니까? 그 반대였으면 좋겠습니다.
  • 114414 및 114415 소켓이 연결된 위치는 어디에서 찾을 수 있습니까? 트래픽을 스니핑할 수 있나요?

그건 그렇고, 나는 이 모험에 대해 블로그를 쓰고 있어요http://www.linuxintro.org/wiki/Sound_troubleshooting#strace.27ing_sound_II

답변1

관련 정보