2 # -*- coding: iso-8859-15 -*-
11 SocketServer.TCPServer.allow_reuse_address = True
13 logger = logging.getLogger(__name__)
15 class TCPServer(threading.Thread):
17 threading.Thread.__init__(self)
19 self.server = SocketServer.ThreadingTCPServer(('0.0.0.0', 10002), TCPHandler)
20 self.server.allow_reuse_address = True
21 self.server.daemon_threads = True
25 self.server.serve_forever()
28 self.server.shutdown()
29 self.server.socket.close()
32 class TCPHandler(SocketServer.BaseRequestHandler):
33 def __init__(self, request, client_address, server):
34 self.__lock_send = threading.Lock()
35 SocketServer.BaseRequestHandler.__init__(self, request, client_address, server)
38 return SocketServer.BaseRequestHandler.finish(self)
40 def send_log(self, s):
44 with self.__lock_send:
45 self.request.sendall(json.dumps(d))
50 s = self.request.recv(4096)
55 if data.has_key("command"):
57 ret = control.handle(cmd)
58 self.send({"return": ret, "command_was": cmd})
61 logger.debug("Exception wile receiving message: \n%s", e)
64 if __name__ == "__main__":
65 from time import sleep
67 logger.setLevel(logging.DEBUG)
68 logger.addHandler(logging.StreamHandler())