ZMQ_SNDHWM
时间: 2023-11-17 17:06:02 浏览: 237
REP-REQ.zip_Rep和req_zmq_zmq REP_zmq REP REQ_zmq_req
在ZMQ中,SNDHWM是用于设置和获取ZeroMQ套接字的发送高水位标记。当消息队列中未发送的消息数量达到SNDHWM值时,后续的消息将被丢弃或阻塞发送端(取决于套接字类型)。具体来说,当发送端发送的消息数量超过了SNDHWM值时,如果套接字类型是ZMQ_PUB、ZMQ_PUSH或ZMQ_ROUTER,那么后续的消息将被丢弃;如果套接字类型是ZMQ_REQ、ZMQ_REP、ZMQ_DEALER或ZMQ_PAIR,那么后续的消息将会阻塞发送端,直到有足够的空间来发送新的消息。
以下是一个设置SNDHWM值并进行测试的例子:
```python
import zmq
context = zmq.Context()
socket = context.socket(zmq.PUSH)
socket.setsockopt(zmq.SNDHWM, 2) # 设置SNDHWM值为2
socket.bind("tcp://*:5555")
# 发送3条消息
socket.send(b"message 1")
socket.send(b"message 2")
socket.send(b"message 3")
# 发送第4条消息,由于超过了SNDHWM值,会被丢弃
socket.send(b"message 4")
# 关闭套接字和上下文
socket.close()
context.term()
```
阅读全文