Create initial tcp server

This commit is contained in:
Sebastian Kramer
2021-08-12 10:21:20 +02:00
parent 7dca623b42
commit a0d4a1e0d3
2 changed files with 61 additions and 0 deletions

10
main.py Normal file
View File

@@ -0,0 +1,10 @@
from tcp.TCPServer import TCPServer
def main():
server = TCPServer()
server.run()
if __name__ == "__main__":
main()

51
tcp/TCPServer.py Normal file
View File

@@ -0,0 +1,51 @@
import socket
import _thread
class TCPServer(socket.socket):
clients = []
def __init__(self):
socket.socket.__init__(self)
self.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
self.bind(('0.0.0.0', 8765))
self.listen(5)
def run(self):
print("Starting TCP Server")
try:
self.accept_clients()
except Exception as ex:
print(ex)
finally:
print("Server shutdown")
for client in self.clients:
client.close()
self.close()
def accept_clients(self):
while True:
(client_socket, address) = self.accept()
self.clients.append(client_socket)
self.on_open(client_socket)
_thread.start_new_thread(self.receive, (client_socket,))
def receive(self, client):
while True:
data = client.recv(1024)
if data == '':
break
self.on_message(client, data)
self.clients.remove(client)
self.on_close(client)
client.close()
_thread.exit()
def on_open(self, client):
pass
def on_message(self, client, message):
pass
def on_close(self, client):
pass