首页 > 解决方案 > ZeroMQ 绑定 API zmq_bind() 到 127.0.0.1:5555 返回错误 19

问题描述

我正在学习 ZeroMQ,我尝试将其绑定到本地主机,如下所示:

void* m_zmqContext;
void* m_zmqSocket;

m_zmqContext = zmq_ctx_new();
unsigned int error_code = zmq_errno();
printf("server ctx error: %u, %s\n", error_code, zmq_strerror(error_code));

m_zmqSocket = zmq_socket(m_zmqContext, ZMQ_REP);
error_code = zmq_errno();
printf("server socket error: %u, %s\n", error_code, 
zmq_strerror(error_code));

zmq_bind(m_zmqSocket, "tcp://127.0.0.1:5555");
error_code = zmq_errno();
printf("server bind error: %u, %s\n", error_code, zmq_strerror(error_code));

这会产生如下输出:

server ctx error: 0, No error
server socket error: 0, No error
server bind error: 19, No such device

的输出netstat -aon | find /i "listening"不显示任何使用该端口的进程5555

如何解决这个问题?

标签: socketszeromq

解决方案


“如何解决这个问题?”

步骤 0: 手头有设备的证明:

~$ traceroute 127.0.0.1 --tos=8    \
                        --port=5555 \
                        --queries=9  \
                        --sendwait=9
            
traceroute to 127.0.0.1 (127.0.0.1), 30 hops max, 60 byte packets
 1  localhost (127.0.0.1)  0.030 ms  0.027 ms  0.026 ms  0.028 ms  0.027 ms  0.028 ms  0.024 ms  0.028 ms  0.026 ms

ON FAIL: 不言自明


ON PASS:向 ZeroMQ 维护人员提交事件,记录所有相应的平台状态/详细信息,包括。使用的 ZeroMQ 版本,最适合您的错误可重现代码。


推荐阅读