Server fixes

This commit is contained in:
Sheppy
2018-08-21 16:42:37 +02:00
parent 925b5baeab
commit 26e86b7cad
2 changed files with 53 additions and 6 deletions

29
python-server/exec_server.py Normal file → Executable file
View File

@@ -1,6 +1,7 @@
#/usr/bin/python3
#!/usr/bin/python3
import socketserver
import server interface
import server_interface
class AppRequestHandler(socketserver.BaseRequestHandler):
def __init__(self, request, client_address, server):
@@ -11,13 +12,29 @@ class AppRequestHandler(socketserver.BaseRequestHandler):
return socketserver.BaseRequestHandler.setup(self)
def handle(self):
data = self.request.recv(1024)
retval = server_interface.parse_request(data)
self.request.send(retval)
data = b""
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
print("Request: {}".format(data))
retval = server_interface.parse_request(data)
self.request.send(retval)
self.request.send(b"terminate\n")
print("Replied with: {}".format(retval))
return
def finish(self):
return socketserver.BaseRequestHandler.finish(self)
def start_server():
server = socketserver.Server(("localhost",7100),AppRequestHandler)
socketserver.TCPServer.allow_reuse_address = True
server = socketserver.TCPServer(("0.0.0.0",7100),AppRequestHandler)
server.serve_forever()
if __name__ == "__main__":
start_server()

View File

@@ -1,3 +1,31 @@
def parse_request(data):
''' parse request and call correct function '''
# echo/test connection
cleared_data = is_data_type(b"ECHOREQUEST,",data)
if cleared_data:
return cleared_data
cleared_data = is_data_type(b"AUDIO_TRANSMISSION,",data)
if cleared_data:
with open("test.wav","wb") as f:
f.write(cleared_data)
return b"SUCCESS"
# other shit
return b"UNRECOGNIZED_SERVER_OPTION\n"
def is_data_type(tag,data):
data = data.strip(b"\n")
if data.startswith(tag):
ret = data.split(tag)[1]
if not ret:
ret = b"NULL\n"
return ret
return None
def reply_logs(loglevel=0,lines=100):
''' replies with recent logs '''
pass
@@ -21,3 +49,5 @@ def recive_transcribe_request(audiofile):
''' saves and transcribes and audiofile '''
pass
def android_unittest_transcribe_request(audiofile):
''' the android unittests append a special keyword, requests are dummy handled '''