def run(self):
        bugprint("TcpClient running...")
        self.receiver.start()
        input = self.receiver.input
        while self.running:
            if len(input):
               self.callback.incomingMessage(input.popleft())
#           time.sleep(.25)
        self.socket.close()
 def __init__(self, host, callback):
     threading.Thread.__init__(self)
     
     socket = sock.socket(sock.AF_INET, sock.SOCK_STREAM, sock.IPPROTO_TCP)
     bugprint(host, PORT)
     socket.connect( (host, PORT) )
     #socket.settimeout(.5)
     self.socket = socket
     
     self.receiver = Receiver( (host, PORT), socket, self )
     self.callback = callback
     self.running = True
 def run(self):
     bugprint("Receiver running...")
     socket = self.socket
     input = self.input
     
     while self.running:
         data = getData(socket, self)
         while data is None:
             data = getData(socket, self)
         end = data.rfind('>')
         assert end > 0
         data = data[:end+1] # strip ending nonsense C# bogus banana characters
         input.append(data)
     socket.close()