Create initial tcp server
This commit is contained in:
10
main.py
Normal file
10
main.py
Normal 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
51
tcp/TCPServer.py
Normal 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
|
||||
Reference in New Issue
Block a user