실제로 저는 ARM-Linux에서 세 가지 응용 프로그램을 실행하는 소프트웨어를 가지고 있습니다. Linux 호스트 x86에서 애플리케이션을 실행하고 싶습니다.
내 ARM-Linux 프로그램의 내부 구성 요소는 통신을 위해 Unix 도메인 소켓을 사용합니다.
내 소켓 유형은 AF_UNIX입니다.
Valgrind를 지원하지 않는 오래된 ARM 프로세서를 사용하고 있습니다. 응용 프로그램에 일부 메모리 누수가 발생하여 충돌이 발생했습니다. 그래서 호스트 시스템에서 애플리케이션을 구축하고 도메인 소켓을 사용하여 ARM과 x86 간의 통신을 설정하는 방법을 알아냈습니다.
이제 애플리케이션이 foo
ARM에 있고 bar
Linux x86인 상황이 발생했습니다. 문제는 서로 다른 호스트가 서로 통신할 수 있느냐는 것입니다.
아래 링크를 읽은 후 Unix 도메인 소켓이 크로스 도메인인 줄 알았는데 혼란스럽습니다.
나는 읽었다,
UNIX 도메인 소켓은 동일한 호스트의 프로세스를 위한 방법입니다.통신이 가능합니다. 양방향 통신을 위해 스트림 소켓을 사용합니다.
fd = socket(AF_UNIX, SOCK_STREAM, 0);
답변1
캔트. AF_UNIX
소켓을 바인딩하기 위해 파일 시스템의 로컬 inode를 참조하고 로컬 파일 시스템은 로컬 호스트에서만 작동하기 때문에 소켓을 사용하여 네트워크의 호스트 간에 통신 할 수 없습니다 .
AF_INET
노드 간에 통신하려면 IP 주소와 포트에 바인딩되어 다른 호스트에 연결할 수 있는 소켓을 사용해야 합니다 .