Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
loeasy68
GitHub Repository: loeasy68/loeasy68.github.io
Path: blob/main/Business/Desktop/Chat/server.py
2941 views
1
import socket
2
import threading
3
4
HOST = "0.0.0.0"
5
PORT = 65535
6
7
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
8
server.bind((HOST, PORT))
9
10
server.listen()
11
12
clients = []
13
nicknames = []
14
15
def broadcast(message):
16
for client in clients:
17
client.send(message)
18
19
20
def handle(client):
21
while True:
22
try:
23
message = client.recv(1024)
24
print(f"{nicknames[client.index(client)]} says {message}")
25
broadcast(message)
26
except:
27
index = client.index(client)
28
clients.remove(client)
29
client.close()
30
nickname = nicknames[index]
31
nicknames.remove(nickname)
32
break
33
34
def receive():
35
while True:
36
client, address = server.accept()
37
print(f"Connent with {str(address)}!")
38
39
client.send("NICK".encode('utf-8'))
40
nickname = client.recv(1024)
41
42
nickname.append(nickname)
43
clients.append(client)
44
45
print(f"Nickname of the client is {nickname}")
46
broadcast(f"{nickname} connented to th server!\n".encode('utf-8'))
47
client.send("Connented to the server".endode('utf-8'))
48
49
thread = threading.Thread(target=handle, args=(client,))
50
thread.start()
51
print("Server running...")
52
receive()
53
54