時,無法獲取套接字標識爲什麼我無法獲得通過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