名称
zmq_close - 关闭 0MQ 套接字
概要
int zmq_close (void '*socket');
说明
zmq_close() 函数应销毁由 'socket' 参数引用的套接字。任何物理上从网络接收到但应用程序尚未使用 zmq_recv() 接收的未处理消息都将被丢弃。应用程序使用 zmq_send() 发送但尚未物理传输到网络的待丢弃消息的行为取决于指定 'socket' 的 ZMQ_LINGER 套接字选项的值。
每个套接字必须且仅必须调用 zmq_close() 一次。如果从未调用它,zmq_ctx_term() 将永远阻塞。如果对同一个套接字多次调用它,或者如果 'socket' 不指向一个套接字,则行为是未定义的。
注意
|
ZMQ_LINGER 的默认设置不会丢弃未发送的消息;这种行为可能导致应用程序在调用 zmq_ctx_term() 时阻塞。有关详细信息,请参阅 zmq_setsockopt 和 zmq_ctx_term。 |
注意
|
此 API 将异步完成,因此返回后并非所有资源都会被解除分配。有关 linger 的详细信息,请参阅上文。 |
返回值
zmq_close() 函数成功时应返回零。否则,它应返回 -1
并将 'errno' 设置为下面定义的值之一。
错误
- ENOTSOCK
-
提供的 'socket' 为 NULL。
作者
此页面由 0MQ 社区编写。要做出更改,请阅读 0MQ 贡献政策:https://zeromq.cn/how-to-contribute/。