Mar*_*tin 2 c unix multithreading posix unix-socket
出于多种原因,我想在两个进程之间使用unix域套接字进行IPC.
每个进程通过写入套接字并将此事件传递给第二个进程来响应来自外部世界的某些特定类型的异步事件 - 同时 - 每个进程还需要读取来自另一个套接字的数据来执行某些操作.实质上,在这个模型中,每个进程将有一个套接字和两个线程:一个用于可能阻塞读取,一个用于写入.
我想知道是否可以使用unix域套接字来独立地从/向每个进程读取和写入,而不使用任何显式锁定,这种安全性将由这些套接字隐式保证.如果是的话,我也想知道这个保证在哪里正式声称.
AF_LOCAL套接字和AF_INET套接字之间唯一相关的区别是AF_LOCAL套接字是当前计算机的本地套接字.创建一个AF_LOCAL套接字并绑定并不比创造一个差异AF_INET套接字并将其绑定到localhost.
用于绑定AF_LOCAL套接字的路径仅用于连接到套接字,没有其他内容.
因此,如果您创建面向连接的AF_LOCAL套接字(使用SOCK_STREAM或SOCK_SEQPACKET),则每个连接都是唯一的,您可以通过相同的侦听(被动)AF_LOCAL套接字连接多个进程.