python 中的套接字与 multiprocessing.connection.Listener

Socket vs. multiprocessing.connection.Listener in python

我知道在 python 中有不同的方法来实现 IPC,例如 PipesQueue;但是根据 Python 的官方文档,还有一种替代方法叫做 Listener and Client

multiprocessing.connection.Listenersocket 非常相似,并且都具有与 accept()close()send()recv() 相同的功能。所以如果我们关注IPC目的,这两个模块有什么区别? 哪个效率更高?

套接字系列

我查看了 cpython on githubmultiprocessing.connection.Listener 使用了 socket 标准库,只有一个主要不同点:套接字系列。

Listeners支持这些家庭交流:

  • AF_PIPE - 命名管道
  • AF_INET - TCP 套接字
  • AF_UNIX - Unix 域套接字

Python 的标准 socket 库很好地支持 AF_INETAF_UNIX,所以我们可以肯定地说主要区别在于 AF_PIPE 系列.