[英]UDP Socket in Python: How to clear the buffer and ignore oldes messages
[英]How to flush/clear buffer in a socket in python3
如何在 python3 中刷新套接字?
我正在做这样的事情
def clear_buffer(sock):
try:
while sock.recv(1024): pass
except:
pass
或者
def clear_buffer(sock):
while True:
data = sock.recv(1024)
if not data:
break
尝试运行这两个函数后,似乎都没有中断 while 循环和/或从传入数据中清除套接字。 当套接字停止接收数据时,如何有条件地做某事?
while run_network:
recv = True
data = b''
try:
while recv:
try:
packet = socket.recv(10240)
if packet:
data += packet
else:
recv = False
try:
pickle.loads(data)
recv = False
except:
recv = True
except ConnectionResetError:
print(f"{client} has disconnected........")
break
except ConnectionError:
**strong text**
print(f"{client}has a Connection Error.....")
break
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.