AF_UNIX域 - 为什么只使用本地文件名?

maw*_*wia 7 unix sockets

在UNIX域中使用套接字时,建议对本地磁盘上安装的目录目录使用路径名.UNIX域仅允许进程在同一台机器上进行通信.

你能解释一下上面这行吗?它是关于UNIX DOMAIN中的套接字.

谢谢!

小智 12

Unix域套接字或IPC套接字(进程间通信套接字)是类似于Internet套接字的数据通信端点,但不使用网络协议进行通信.它在POSIX操作系统中用于进程间通信.正确的标准POSIX术语是POSIX本地IPC套接字.

Unix域连接显示为字节流,非常类似于网络连接,但所有数据都保留在本地计算机中.UNIX域套接字使用文件系统作为地址名称空间,即它们被进程引用为文件系统中的inode.这允许两个不同的进程打开同一个套接字以进行通信.但是,实际通信(数据交换)不使用文件系统,而是使用内核内存中的缓冲区.

除了发送数据之外,进程还可以使用sendmsg()和recvmsg()系统调用在Unix域套接字连接上发送文件描述符.

  • 只有一点听起来不对:"Unix域连接显示为字节流":本地套接字可以是字节流(SOCK_STREAM)和数据报(SOCK_DGRAM和SOCK_SEQPACKET). (2认同)
  • -1,这只是来自维基百科的肆无忌惮的抄袭. (2认同)