Files
ths-speech/python-server/exec_server.py
2018-10-13 18:14:54 +02:00

46 lines
1.4 KiB
Python
Executable File

#!/usr/bin/python3
import socketserver
import server_interface
from configparse_wrapper.cpwrap import CFG, parse_config, change_cfg
class AppRequestHandler(socketserver.BaseRequestHandler):
def __init__(self, request, client_address, server):
socketserver.BaseRequestHandler.__init__(self, request, client_address, server)
return
def setup(self):
return socketserver.BaseRequestHandler.setup(self)
def handle(self):
data = b""
print("Recieved request")
while True:
tmp = self.request.recv(1024)
if not tmp or b"\nterminate\n" in tmp:
if len(tmp) > len("\nterminate\n"):
data += tmp[:-len("\nterminate\n")]
break
data += tmp
retval = server_interface.parse_request(data)
try:
self.request.send(retval)
self.request.send(b"terminate\n")
print("Replied with: {}".format(retval))
except BrokenPipeError:
print("Connection was closed before reply could be sent.")
return
def finish(self):
return socketserver.BaseRequestHandler.finish(self)
def start_server():
socketserver.TCPServer.allow_reuse_address = True
server = socketserver.TCPServer((CFG("interface"),CFG("port")),AppRequestHandler)
server.serve_forever()
if __name__ == "__main__":
parse_config()
start_server()