时,无法获取套接字标识为什么我无法获得通过zsock_new_stream创建的套接字的标识? zmq_getsockopt返回-1。当使用CZMQ的zsock_new_stream
zsock_t *socket = zsock_new_stream("tcp://127.0.0.1:5555");
uint8_t id [256];
size_t id_size = 256;
int rc = zmq_getsockopt (socket, ZMQ_IDENTITY, id, &id_size);
assert(rc == 0);
使用旧的过时zsocket工作正常,见下图:
zctx_t *ctx = zctx_new();
void *sock = zsocket_new(ctx, ZMQ_STREAM);
int rc = zsocket_connect(sock, "tcp://127.0.0.1:5555");
uint8_t id [256];
size_t id_size = 256;
int rc = zmq_getsockopt (socket, ZMQ_IDENTITY, id, &id_size);
assert (rc == 0);
是否为例存在使用zsock_new_stream的作品?
也许你应该检查*为什么*'zmq_getsockopt'返回'-1'?必须有一些类似于'errno'的函数或从最后一个失败函数中获取错误的函数。 –
好的,我检查了errno。它说“在非插座上的插座操作”。怎么会这样? czmq api指出zsock_new_stream创建一个流套接字。 – Koi