def _read_packet(self, socket_):
if hasattr(socket, "MSG_WAITALL"):
data = socket_.recv(3, socket.MSG_WAITALL)
else:
# Windows lacks MSG_WAITALL
data = b''
while len(data) < 3:
data += socket_.recv(3 - len(data))
type, length = struct.unpack(">BH", data)
body_len = length - 3
while body_len > 0:
read_len = 32767 if body_len > 32767 else body_len
data += socket_.recv(read_len, socket.MSG_WAITALL)
body_len -= read_len
return type, data
评论列表
文章目录