def peek(self, length):
"""Peek into the underline socket buffer.
Args:
length (int): The peeking buffer length.
Returns:
(bytes): Bytes of buffer.
Raises:
ValueError: If length is not int and smaller than one
will raise ValueError.
"""
if not isinstance(length, int) or length < 0:
raise ValueError("Incorrect length.")
# TODO: Change into nonblocking mode.
self.socket.setblocking(True)
while True:
try:
_data = self.socket.recv(length, socket.MSG_PEEK)
except socket.error:
continue
except:
raise
else:
return _data
finally:
self.socket.setblocking(False)
评论列表
文章目录