Update repl_server.py

This commit is contained in:
Shunsuke Shibayama 2023-04-26 23:59:23 +09:00
parent 2c5ba704f8
commit 03a30a450a

View file

@ -26,16 +26,10 @@ class MessageStream:
def recv_msg(self): def recv_msg(self):
self._read_buf.clear() self._read_buf.clear()
# requires at least 3 bytes as metadata self._read_buf.extend(self.socket.recv(3))
while len(self._read_buf) < 3:
self._read_buf.extend(self.socket.recv(1024))
inst = int.from_bytes(self._read_buf[:1], 'big') inst = int.from_bytes(self._read_buf[:1], 'big')
data_len = int.from_bytes(self._read_buf[1:3], 'big') data_len = int.from_bytes(self._read_buf[1:3], 'big')
self._read_buf.extend(self.socket.recv(data_len))
# until all data has been read
while len(self._read_buf) < 3 + data_len:
self._read_buf.extend(self.socket.recv(1024))
return (inst, self._read_buf[3:].decode()) return (inst, self._read_buf[3:].decode())