实际上,我有在 ARM-Linux 上运行的软件有我的三个应用程序。我想在 Linux 主机 x86 上运行某个应用程序。
我的 ARM-Linux 程序中的内部组件使用 Unix 域套接字进行通信。
我的套接字类型是:AF_UNIX
我使用的是旧的 ARM 处理器,不支持 Valgrind。导致崩溃的应用程序中存在一些内存泄漏。所以我在主机中构建应用程序并弄清楚如何使用域套接字在 ARM 和 x86 之间建立通信?
现在我遇到了应用程序foo
在 ARM 中并且bar
是 Linux x86 的情况。问题是否可以在不同主机之间进行通信?
阅读下面的链接后,我认为 Unix 域套接字是域间的,我很困惑。
我读,
UNIX 域套接字是同一主机上的进程可以通信的一种方法。使用流套接字进行双向通信。
fd = socket(AF_UNIX, SOCK_STREAM, 0);
不,您不能使用
AF_UNIX
套接字在网络上的主机之间进行通信,因为这些引用文件系统上的本地 inode 以将套接字绑定到,并且本地文件系统仅对本地主机可用。要在节点之间进行通信,您需要使用
AF_INET
套接字,该套接字将绑定到 IP 地址和端口,该地址和端口可以访问不同的主机。