40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
import socket
|
|
import threading
|
|
|
|
HEADER = 64
|
|
PORT = 5050
|
|
SERVER = socket.gethostbyname(socket.gethostname())
|
|
ADDR = (SERVER, PORT)
|
|
FORMAT = 'utf-8'
|
|
DISCONNECT_MESSAGE = '!DISCONNECT'
|
|
|
|
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
|
server.bind(ADDR)
|
|
|
|
def handleClient(conn, addr):
|
|
print(f'[NEW CONNECTION] - {addr} connected.')
|
|
connected = True
|
|
while connected:
|
|
msg_length = conn.recv(HEADER).decode(FORMAT)
|
|
if msg_length:
|
|
msg_length = int(msg_length)
|
|
msg = conn.recv(msg_length).decode(FORMAT)
|
|
if msg == DISCONNECT_MESSAGE: break
|
|
print(f'[{addr}] - {msg}')
|
|
|
|
conn.close()
|
|
|
|
def start():
|
|
server.listen()
|
|
print(f'[LISTENING] - Server is listening on {SERVER}')
|
|
while True:
|
|
conn, addr = server.accept()
|
|
thread = threading.Thread(target=handleClient, args=(conn, addr))
|
|
thread.start()
|
|
thread2 = threading.Thread(target=quit)
|
|
thread2.start()
|
|
print(f'[ACTIVE CONNECTIONS] - {threading.activeCount() - 1}')
|
|
|
|
print('[Starting] - Server Starting...')
|
|
start()
|