我正在使用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))
客户端的推送速度可能超过服务器的消耗速度。