diff options
Diffstat (limited to 'test_tool/ping_server.py')
-rwxr-xr-x | test_tool/ping_server.py | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/test_tool/ping_server.py b/test_tool/ping_server.py new file mode 100755 index 0000000..5cdf41b --- /dev/null +++ b/test_tool/ping_server.py @@ -0,0 +1,62 @@ +#! /usr/bin/env python3 + +import log +import sys +import tcp_server +import threading + +from json_package import JSONPackage + +class _TCPConnectionHandler(threading.Thread): + """A thread to handle a connection. + + Attributes: + _sock: The connection socket. + _users_text_manager: An instance of UsersTextManager. + """ + def __init__(self, sock, users_text_manager): + """Constructor. + + Args: + sock: The connection socket. + users_text_manager: An instance of UsersTextManager. + """ + super(_TCPConnectionHandler, self).__init__() + self._sock = sock + self._users_text_manager = users_text_manager + + def run(self): + """Runs the thread.""" + request = self._receive() + self._handle(request) + self._sock.close() + + + def _handle(self, request): + """Handles the request. + + Args: + request: The request package. + """ + log.info(str(request.content) + '\n') + request.send_to(self._sock) + + def _receive(self): + """Receive a request. + + Return: + The request package. + """ + request = JSONPackage() + request.recv_from(self._sock) + return request + + +tcp_server._TCPConnectionHandler = _TCPConnectionHandler + +def main(): + server = tcp_server.TCPServer(int(sys.argv[1]), None) + server.start() + +if __name__ == '__main__': + main() |