From 55b899f5c1ee305161986601a0a5d656e99e0e5c Mon Sep 17 00:00:00 2001 From: Pedro Gimeno Date: Tue, 2 Jul 2013 17:43:54 +0200 Subject: [PATCH] Better fix for issue #183 The former patch was too local; this one integrates better with the structure of the code. --- src/class_receiveDataThread.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/class_receiveDataThread.py b/src/class_receiveDataThread.py index a023f80b..ced951b2 100644 --- a/src/class_receiveDataThread.py +++ b/src/class_receiveDataThread.py @@ -65,11 +65,9 @@ class receiveDataThread(threading.Thread): print 'ID of the receiveDataThread is', str(id(self)) + '. The size of the shared.connectedHostsList is now', len(shared.connectedHostsList) shared.printLock.release() while True: + dataLen = len(self.data) try: - dataLen = len(self.data) self.data += self.sock.recv(4096) - if len(self.data) == dataLen: # recv returns 0 bytes when the remote closes the connection - raise Exception("Remote closed the connection") except socket.timeout: shared.printLock.acquire() print 'Timeout occurred waiting for data from', self.HOST + '. Closing receiveData thread. (ID:', str(id(self)) + ')' @@ -81,7 +79,7 @@ class receiveDataThread(threading.Thread): shared.printLock.release() break # print 'Received', repr(self.data) - if self.data == "": + if len(self.data) == dataLen: shared.printLock.acquire() print 'Connection to', self.HOST, 'closed. Closing receiveData thread. (ID:', str(id(self)) + ')' shared.printLock.release()