From 44e44c36309d5ffc557d2a0d70d42b10edcf2120 Mon Sep 17 00:00:00 2001 From: andreas128 Date: Sat, 8 Apr 2017 16:13:16 +0100 Subject: Fix receive more bytes then one object --- src/tcp_sync.py | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/src/tcp_sync.py b/src/tcp_sync.py index 4a5a5b8..79183a2 100644 --- a/src/tcp_sync.py +++ b/src/tcp_sync.py @@ -45,23 +45,17 @@ class _TcpSyncClient(threading.Thread): #Read messages sock.settimeout(None) + s = "" while self.q_quit.empty(): try: - s = "" #concatenate to one package while self.q_quit.empty(): s += sock.recv(self.packet_size) - if (len(s)) == self.packet_size: + if (len(s)) >= self.packet_size: break - if (len(s)) > self.packet_size: - print("received wrong size of length " + str(len(s)) + " instead of " + str(self.packet_size)) - time.sleep(0.01) - return -1 - - res_tuple = struct.unpack( - self.packet_type, - s) + res_tuple = struct.unpack( self.packet_type, s[:self.packet_size]) + s = s[self.packet_size:] self.queue.put(res_tuple) except socket.timeout: self.stop() -- cgit v1.2.3