我正在尝试将 ZMQ_SNDHWM 和 ZMQ_RCVHWM 值配置为 100,但是每当我使用 getsockopt() 检查它时,它总是返回 1000,这是默认值。我用最新的 4.3.4 ZMQ 试过这个,我也得到了同样的结果。下面是我正在使用的代码的快照
m_pZmqClient = CZmqClient::getInstance();
m_pZmqSock = zmq_socket(m_pZmqClient->getZmqContext(), ZMQ_PUSH);
zmq_setsockopt(m_pZmqSock, ZMQ_SNDHWM, &gSendWaterMark, sizeof(gSendWaterMark));
m_ZmqPeerHost = m_pZmqClient->getNextAvailableConnection();
zmq_connect(m_pZmqSock, m_ZmqPeerHost);
int rc = -1;
int hwm;
size_t hwm_size = sizeof(hwm);
rc = zmq_getsockopt(m_pZmqSock, ZMQ_SNDHWM, &hwm, &hwm_size);
在这里,我没有提供某些功能的实现,但从那里可以清楚地看到它们的功能。请让我知道它是否是 ZMQ 中的错误,或者我试图以错误的方式设置或检索它,或者我的理解是错误的。请帮助我消除这个疑问。