2024-05-15 03:53:22 发布
网友
我第一次开始研究Python中的socket库,我意识到有一个名为AF_UNIX的常量,它的作用与AF_INET相同,但速度更快,只与同一台机器建立连接,并使用系统文件而不是internet连接
socket
AF_UNIX
AF_INET
但我不明白的是为什么?为什么我要与自己的机器建立通信?这有什么用?在什么情况下使用AF_UNIX真的有用?
您的问题有很多答案,我将尝试回答AF_UNIX的几个用例:
您可以使用它为其他进程公开一个私有通道,以便使用文件进行安全通信(因为它将尊重文件系统层次结构和*nix权限模型)。众所周知,PostgreSQL公开unix套接字,以便其psqlcli安全连接
psql
您可以使用套接字协议实现可交换的通信,因为在AF_INET和AF_UNIX之间移动很容易,并且可以在不同的主机上扩展它的通信(redis和docker这样做)
您可以为不同的进程和技术创建一种可扩展的、快速的通信方式,而不需要设备开销AF_INET,即使您使用的是环回接口
这种可能性实际上是无限的,因为它包含了一点个人偏好。但是AF_UNIX使用了与AF_INET类似的规范,这一事实使得它成为扩展进程间通信的强大工具,而不必依赖严重不同的工具(fifo、共享mem、内部队列、文件等等)
您的问题有很多答案,我将尝试回答
AF_UNIX
的几个用例:您可以使用它为其他进程公开一个私有通道,以便使用文件进行安全通信(因为它将尊重文件系统层次结构和*nix权限模型)。众所周知,PostgreSQL公开unix套接字,以便其
psql
cli安全连接您可以使用套接字协议实现可交换的通信,因为在
AF_INET
和AF_UNIX
之间移动很容易,并且可以在不同的主机上扩展它的通信(redis和docker这样做)您可以为不同的进程和技术创建一种可扩展的、快速的通信方式,而不需要设备开销
AF_INET
,即使您使用的是环回接口这种可能性实际上是无限的,因为它包含了一点个人偏好。但是
AF_UNIX
使用了与AF_INET
类似的规范,这一事实使得它成为扩展进程间通信的强大工具,而不必依赖严重不同的工具(fifo、共享mem、内部队列、文件等等)相关问题 更多 >
编程相关推荐