summaryrefslogtreecommitdiffstats
path: root/server.py
diff options
context:
space:
mode:
Diffstat (limited to 'server.py')
-rw-r--r--server.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/server.py b/server.py
new file mode 100644
index 0000000..9228c7f
--- /dev/null
+++ b/server.py
@@ -0,0 +1,29 @@
+# serever.py
+# Fibonacci microservice
+
+from socket import *
+from fib import fib
+from threading import Thread
+
+def fib_server(address):
+ sock = socket(AF_INET, SOCK_STREAM)
+ sock.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
+ sock.bind(address)
+ sock.listen(5)
+ while True:
+ client, addr = sock.accept()
+ print("Connection", addr)
+ Thread(target=fib_handler, args=(client,), daemon=True).start()
+
+def fib_handler(client):
+ while True:
+ req = client.recv(100)
+ if not req:
+ break
+ n = int(req)
+ result = fib(n)
+ resp = str(result).encode('ascii') + b'\n'
+ client.send(resp)
+ print('Closed')
+
+fib_server(('', 25000))