From 3cd5a59bb58ccfa907889adf53d760144a19d118 Mon Sep 17 00:00:00 2001 From: Bastian Schroll Date: Wed, 23 Oct 2019 08:59:19 +0200 Subject: [PATCH] improve client isConnected method --- boswatch/network/client.py | 10 ++-------- boswatch/network/server.py | 3 --- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/boswatch/network/client.py b/boswatch/network/client.py index 00bead8..f4fb5de 100644 --- a/boswatch/network/client.py +++ b/boswatch/network/client.py @@ -105,13 +105,7 @@ class TCPClient: @property def isConnected(self): """!Property of client connected state""" - try: - aliveMsg = "" - header = str(len(aliveMsg)).ljust(HEADERSIZE) - self._sock.sendall(bytes(header + aliveMsg, "utf-8")) + _, write, _ = select.select([], [self._sock], [], 0.1) + if write: return True - except socket.error as e: - if e.errno is 32: # broken pipe - no one will read from this pipe anymore - return False - logging.error(e) return False diff --git a/boswatch/network/server.py b/boswatch/network/server.py index 631a9ac..67cc6b7 100644 --- a/boswatch/network/server.py +++ b/boswatch/network/server.py @@ -55,9 +55,6 @@ class _ThreadedTCPRequestHandler(socketserver.BaseRequestHandler): length = int(header.decode("utf-8").strip()) data = self.request.recv(length).decode("utf-8") - if data == "": - continue - logging.debug("%s recv %d bytes:\n%s", req_name, length, pformat(data)) # add a new entry and the decoded data dict as an string in utf-8 and an timestamp