From b76b5d21cef518c019da0154118cbf3a05cbb235 Mon Sep 17 00:00:00 2001 From: wakonig_k Date: Mon, 29 Jul 2024 21:00:12 +0200 Subject: [PATCH] fix(socketio): receive until buffer is empty --- ophyd_devices/utils/socket.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/ophyd_devices/utils/socket.py b/ophyd_devices/utils/socket.py index 01b5bc9..873540e 100644 --- a/ophyd_devices/utils/socket.py +++ b/ophyd_devices/utils/socket.py @@ -202,9 +202,17 @@ class SocketIO: return self.sock.send(msg_bytes) def _recv(self, buffer_length=1024): - msg = self.sock.recv(buffer_length) - logger.debug(f"recv message: {msg}") - return msg + full_msg = b"" + while True: + try: + msg = self.sock.recv(buffer_length) + logger.debug(f"recv message: {msg}") + except TimeoutError: + msg = b"" + full_msg += msg + if len(msg) < buffer_length: + break + return full_msg def _initialize_socket(self): self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)