def get_resp(self, timeout=180.0):
rl = select((self.sock, ), (), (), timeout)[0]
if not rl:
raise RobotError("get resp timeout")
bml = msg_waitall(self.sock, 2, timeout)
if not bml:
logger.error("Message payload recv error")
raise socket.error(EPIPE, "Broken pipe")
message_length = struct.unpack("<H", bml)[0]
message = b""
while len(message) != message_length:
buf = self.sock.recv(message_length - len(message))
if not buf:
logger.error("Recv empty message")
raise socket.error(EPIPE, "Broken pipe")
message += buf
return message
评论列表
文章目录