Start a threaded TCP socket server.
Start a TCP Socket Server in a new thread that will then start one more thread for each client request. The ip address for binding the server socket is always 'localhost'
107 def start(self, port=8080):
108 r"""!Start a threaded TCP socket server
109
110 Start a TCP Socket Server in a new thread that will
111 then start one more thread for each client request.
112 The ip address for binding the server socket is always 'localhost'
113
114 @param port: Server Port (8080)
115
116 @return True or False"""
117 if not self.isRunning:
118 try:
119 socketserver.TCPServer.allow_reuse_address = True
120 self._server = _ThreadedTCPServer(("", port), _ThreadedTCPRequestHandler)
121 self._server.timeout = self._timeout
122 self._server.alarmQueue = self._alarmQueue
123 self._server.isActive = True
124
125 self._server.clientsConnectedLock = self._clientsConnectedLock
126 self._server.clientsConnected = self._clientsConnected
127
128 self._server_thread = threading.Thread(target=self._server.serve_forever)
129 self._server_thread.name = "Thread-BWServer"
130 self._server_thread.daemon = True
131 self._server_thread.start()
132 logging.debug("TCPServer started in Thread: %s", self._server_thread.name)
133 return True
134 except socket.error as e:
135 logging.error(e)
136 return False
137 else:
138 logging.warning("server always started")
139 return True
140