diff --git a/src/networkers.py b/src/networkers.py --- a/src/networkers.py +++ b/src/networkers.py @@ -1,20 +1,10 @@ -import threading -import queue -import json +import json -class NetworkReader(threading.Thread): +class NetworkReader: def __init__(self,stream): - threading.Thread.__init__(self,daemon=True) - self.parent=threading.current_thread() - self.stream=stream - self.output=queue.Queue() - - def run(self): - if not self.parent.is_alive(): return - self.output.put(self.readMsg(),timeout=5) - + def readMsg(self): data=self.stream.readline() if not data: pass # !! raise something @@ -29,23 +19,15 @@ class NetworkReader(threading.Thread): return (jsonData,binData) -class NetworkWriter(threading.Thread): +class NetworkWriter: def __init__(self,stream): - threading.Thread.__init__(self,daemon=True) - self.parent=threading.current_thread() - self.stream=stream - self.input=queue.Queue() - - def run(self): - if not self.parent.is_alive(): return - msg=self.input.get(timeout=5) - if msg is None: return - self.stream.write(self.prepMsg(msg)) + + def writeMsg(self,*args): + self.stream.write(self.prepMsg(*args)) self.stream.flush() - - def prepMsg(self, msg): - jsonData,binData=msg + + def prepMsg(self,jsonData,binData=b""): jsonData=bytes(json.dumps(jsonData)+"\n",encoding="utf-8") jsonLength=bytes("json-length: "+str(len(jsonData))+"\n",encoding="utf-8") binLength=bytes("bin-length: "+str(len(binData))+"\n",encoding="utf-8")