python - 如何在 zmq 中处理同一端口上的多个发布者?

标签 python sockets port zeromq pyzmq

这个问题之前有人问过,here .我有完全一样的问题。我想从一堆不同的进程中发布,并且每次都使用相同的端口。

我尝试了答案中提供的解决方案,但这对我不起作用。我得到错误

    File "/usr/local/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap
    self.run()
  File "/usr/local/lib/python2.7/multiprocessing/process.py", line 114, in run
    self._target(*self._args, **self._kwargs)
  File "/home/akay/afk/multi.py", line 18, in to_zmq
    socket.connect("tcp://*:%s" % port)
  File "zmq/backend/cython/socket.pyx", line 478, in zmq.backend.cython.socket.Socket.connect (zmq/backend/cython/socket.c:4308)
ZMQError: Invalid argument

我的代码是这样的,基本上直接取自 zmq 文档中的示例 herehere :

# Socket to talk to server
port = '5556'
context = zmq.Context()
socket = context.socket(zmq.SUB)
print "Listening for stream...", m
socket.bind("tcp://localhost:%s" % port) #change connect to bind, as per answer above
socket.setsockopt(zmq.SUBSCRIBE, topicfilter)

我正在使用 python 2.7 和最新版本的 zmq。知道我可能做错了什么吗?

最佳答案

嗯,错误很明显:

    [...]
    socket.connect("tcp://*:%s" % port)
    [...]
ZMQError: Invalid argument

你不能连接到*,你必须指定一个IP地址(服务器IP地址)。如果客户端和服务器都在一台机器上运行,请尝试使用 localhost127.0.0.1

关于python - 如何在 zmq 中处理同一端口上的多个发布者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30552925/

相关文章:

linux - 使用端口的 IPC 方法必须使用网络套接字吗?

java - Internet 上的 Java 聊天应用程序 | ConnectException(连接超时)

python - 将单选按钮添加到 web2py 中的自定义表单

python - Qt 使用 CSS 给对象上色?还有另一种方法可以解决这个问题吗?

Python套接字服务器: Cant connect through internet

apache - ports.conf 由 certbot 更改

c# - UPnP 打洞无法使用外部 IP 访问本地子网中的设备

python - 何时使用 Django 表单与手动表单?

python - 计算多列的百分比

android - 我怎样才能强制Android垃圾收集旧的套接字信息?