【发布时间】:2020-12-10 04:15:53
【问题描述】:
我正在使用以下代码从客户端获取帧:
def fetch_frame(self):
context = zmq.Context()
footage_socket = context.socket(zmq.REP)
footage_socket.bind('tcp://*:5555')
while True:
frame = footage_socket.recv_string()
frame = frame.encode()
img = base64.b64decode(frame)
npimg = np.fromstring(img, dtype=np.uint8)
source = cv2.imdecode(npimg, 1)
不幸的是,它抛出以下错误:
zmq.error.ZMQError: Operation cannot be accomplished in current state
使用 zmq 检索图像的正确方法是什么?
更新:
以下是回溯:
File "/home/receive/main.py", line 77, in <module>
main()
File "/home/receive/main.py", line 73, in main
ci.fetch_frame()
File "/home/receive/main.py", line 59, in fetch_frame
frame = footage_socket.recv_string()
File "/home/.local/lib/python3.8/site-packages/zmq/sugar/socket.py", line 608, in recv_string
msg = self.recv(flags=flags)
File "zmq/backend/cython/socket.pyx", line 791, in zmq.backend.cython.socket.Socket.recv
File "zmq/backend/cython/socket.pyx", line 827, in zmq.backend.cython.socket.Socket.recv
File "zmq/backend/cython/socket.pyx", line 191, in zmq.backend.cython.socket._recv_copy
File "zmq/backend/cython/socket.pyx", line 186, in zmq.backend.cython.socket._recv_copy
File "zmq/backend/cython/checkrc.pxd", line 26, in zmq.backend.cython.checkrc._check_rc
zmq.error.ZMQError: Operation cannot be accomplished in current state
【问题讨论】:
-
什么引发了错误?请编辑您的问题并包含整个回溯(或至少提及您的代码的哪一行导致它)。
-
@martineau 请检查更新后的问题。我已经添加了日志
-
是的,在这样的问题中应该提供这种信息,以帮助其他人找出问题所在。
-
问题可能出在另一端吗?
标签: python numpy opencv networking zeromq