首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ZeroMQ setsockopt和getsockopt返回无效参数

ZeroMQ setsockopt和getsockopt返回无效参数
EN

Stack Overflow用户
提问于 2015-11-18 09:59:59
回答 2查看 1.4K关注 0票数 0
代码语言:javascript
复制
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()的参数无效。

代码语言:javascript
复制
terminate called after throwing an instance of 'zmq::error_t'
  what():  Invalid argument
Aborted (core dumped)
EN

回答 2

Stack Overflow用户

发布于 2015-11-18 18:13:40

您可能希望根据API规范检查您的代码以了解详细信息:

代码语言:javascript
复制
socket_t::socket_t(        context_t  &context,
                           int         type
                           );

映射到ZeroMQ接口:

代码语言:javascript
复制
void *zmq_socket (   void *context,
                     int   type
                     );

代码语言:javascript
复制
void socket_t::getsockopt( int         option_name,
                           void       *option_value,
                           size_t     *option_len
                           );

映射到ZeroMQ接口:

代码语言:javascript
复制
int zmq_getsockopt ( void   *socket,
                     int     option_name,
                     void   *option_value,
                     size_t *option_len
                     );
票数 0
EN

Stack Overflow用户

发布于 2015-12-01 08:01:04

第一件事:选项长度必须初始化。

代码语言:javascript
复制
size_t hwmsz = sizeof(unsigned long long);

第二件事:

ZMQ_HWM -这是一个不推荐使用的选项吗?

尝试获取ZMQ_SNDHWM和ZMQ_RCVHWM的值(它们是整型的)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33770534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档