From 1b0a8670e538614a48a5b96e1871242a26809de4 Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Mon, 25 May 2026 20:25:33 +0200 Subject: [PATCH] Fix spurious disconnect after first message in GUI client create_connection(timeout=5) left a 5-second read timeout on the socket. Any collection interval longer than 5 s caused recv() to raise socket.timeout, which was caught as OSError and reported as a lost connection. Switch to blocking mode with settimeout(None) immediately after the connect handshake. Co-Authored-By: Claude Sonnet 4.6 --- gui_client.py | 1 + 1 file changed, 1 insertion(+) diff --git a/gui_client.py b/gui_client.py index ca4b84b..ea2cd13 100644 --- a/gui_client.py +++ b/gui_client.py @@ -54,6 +54,7 @@ class TcpReader(QObject): """Open connection; returns error string or None on success.""" try: self._sock = socket.create_connection((host, port), timeout=5) + self._sock.settimeout(None) # blocking reads after connect except OSError as exc: return str(exc) self._running = True