diff --git a/dsmr_parser/clients/socket_.py b/dsmr_parser/clients/socket_.py index 968a582..fddee61 100644 --- a/dsmr_parser/clients/socket_.py +++ b/dsmr_parser/clients/socket_.py @@ -31,12 +31,16 @@ class SocketReader(object): buffer = b"" with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as socket_handle: - + socket_handle.settimeout(60) socket_handle.connect((self.host, self.port)) while True: - buffer += socket_handle.recv(self.BUFFER_SIZE) - + try: + buffer += socket_handle.recv(self.BUFFER_SIZE) + except socket.timeout:: + logger.error("Socket timeout occurred, exiting") + break + lines = buffer.splitlines(keepends=True) if len(lines) == 0: