zeromq / czmq

High-level C binding for ØMQ
czmq.zeromq.org
Mozilla Public License 2.0
1.16k stars 523 forks source link

An error occurs when the zsock_set_tcp_keepalive function is executed #2268

Open wangxuheng opened 1 year ago

wangxuheng commented 1 year ago

Use the 4.2.2czmq version and the 4.3.5 zmq version code:

socket->pub_intermsg = zsock_new(ZMQ_PUB);
VALID(socket->pub_intermsg);
zsock_set_tcp_keepalive (socket->pub_intermsg, 3);
assert (zsock_tcp_keepalive (socket->pub_intermsg) == 3);
zsock_set_tcp_keepalive_idle (socket->pub_intermsg, 30);
assert (zsock_tcp_keepalive_idle (socket->pub_intermsg) == 30);
zsock_set_tcp_keepalive_cnt (socket->pub_intermsg, 5);
assert(zsock_tcp_keepalive_cnt (socket->pub_intermsg) == 5);
zsock_set_tcp_keepalive_intvl (socket->pub_intermsg, 3);
assert(zsock_tcp_keepalive_intvl (socket->pub_intermsg) == 3);
zmq_setsockopt(socket->pub_intermsg, ZMQ_SNDHWM, &g_evd_hwm, sizeof (g_evd_hwm));

problem: An error occurs when the zsock_set_tcp_keepalive function is executed src/zsock_option.inc:2949: zsock_set_tcp_keepalive: Assertion rc == 0 || zmq_error() == (156384712 + 53) failed.