mirror of
https://github.com/FAUSheppy/ths-speech
synced 2025-12-06 11:11:36 +01:00
46 lines
1.4 KiB
Python
Executable File
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()
|