限制套接字缓冲区中的消息数

时间:2018-08-21 18:41:02

标签: python linux sockets

我正在使用UDP套接字服务器和客户端,客户端仅将JSON推送到服务器即可使用它。我不希望缓冲区中充满旧数据,因为我知道套接字是FIFO,并且新数据不会覆盖旧数据。

如何限制套接字,以便仅特定数量的字节可用于缓冲?如何指示我的客户只发送x个字节?

这样的方式是,套接字上一次仅缓冲1条消息,以防止它充满服​​务器无法跟上的旧数据。

服务器:

udp = st.socket(st.AF_INET, st.SOCK_DGRAM)
udp.bind(('localhost', 5005))
udp.setblocking(False)

while True:
    byte = udp.recv(1024)

客户

socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
socket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
while True:
    socket.sendto(data, ('localhost', 5005))

客户端的推送速度可能超过服务器的消耗速度。

0 个答案:

没有答案