gpt4 book ai didi

python - 我应该为 pyzmq 使用哪种协议(protocol)?

转载 作者:可可西里 更新时间:2023-11-01 02:47:00 24 4
gpt4 key购买 nike

我正在做一个项目,我有一个 python 客户端服务器模型。我设置了一个服务器来监视请求并发回数据。 PYZMQ 支持:tcp、udp、pgm、epgm、inproc 和 ipc。我一直在使用 tcp 进行进程间通信,但不知道我应该使用什么来通过 Internet 向服务器发送请求。我只需要放入一些东西:

    socket.bind(BIND_ADDRESS)

DIAGRAM: Client Communicating over internet to server running a program

最佳答案

您没有使用 ipcinproc 进行进程间通信的任何特殊原因?

除此之外,一般而言,您可以将tcp视为通用通信器;它并不总是最好的选择,但无论如何(只要您确实有一个 IP 地址)它都会起作用。

以下是您在选择传输方式时需要了解的内容:

  1. PGM/EPGM 是多播传输 - 这个想法是您发送一条消息,然后它作为一条消息传递,直到最后可能的时刻,它将被分解成多条消息,每个接收者一条。除非你绝对知道你需要这个,否则你不需要这个。
  2. IPC/Inproc 用于进程间通信...如果您在同一进程中的不同线程之间或同一逻辑主机上的不同进程之间进行通信,那么这些可能是合适的。您将获得更少开销的好处。如果您可能会添加新的逻辑主机,这可能是不合适的。
  3. Russle Borogove 很好地列举了 TCP 和 UDP 之间的区别。通常您需要使用 TCP。只有当绝对速度比可靠性更重要时,您才会使用 UDP。

我一直认为 ZMQ 不支持 UDP,所以如果它存在,它可能是由 pyzmq 绑定(bind)添加的。

此外,我还查看了您的图表 - 您可能希望服务器 ZMQ 套接字绑定(bind),而客户端 ZMQ 套接字连接 ...有一些原因可以使您逆转这一点,但作为一般规则,服务器被认为是“可靠”对等点,而客户端是“ transient ”对等点,并且您希望“可靠”对等点绑定(bind), “ transient ”对等连接。

关于python - 我应该为 pyzmq 使用哪种协议(protocol)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24027579/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com