int main ()
{
zmq::context_t context(1);
// Socket to talk to clients
zmq::socket_t push (context, ZMQ_PUSH);
unsigned long long hwm;
size_t hwmsz;
push.getsockopt( ZMQ_HWM, &hwm, &hwmsz);
cout << "HWM:" << hwm << endl;
}使用zeromq版本4.1.4执行上述代码会导致以下异常。任何套接字选项都会导致setsockopt()和getsockopt()的参数无效。
terminate called after throwing an instance of 'zmq::error_t'
what(): Invalid argument
Aborted (core dumped)发布于 2015-11-18 18:13:40
您可能希望根据API规范检查您的代码以了解详细信息:
socket_t::socket_t( context_t &context,
int type
);映射到ZeroMQ接口:
void *zmq_socket ( void *context,
int type
);和
void socket_t::getsockopt( int option_name,
void *option_value,
size_t *option_len
);映射到ZeroMQ接口:
int zmq_getsockopt ( void *socket,
int option_name,
void *option_value,
size_t *option_len
);发布于 2015-12-01 08:01:04
第一件事:选项长度必须初始化。
size_t hwmsz = sizeof(unsigned long long);第二件事:
ZMQ_HWM -这是一个不推荐使用的选项吗?
尝试获取ZMQ_SNDHWM和ZMQ_RCVHWM的值(它们是整型的)
https://stackoverflow.com/questions/33770534
复制相似问题