Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import threading
- import socket
- host = '127.0.0.1' # local host
- port = 39241 # server port
- server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- server.bind((host, port))
- server.listen()
- clients = []
- nicknames = []
- def broadcast(message):
- for client in clients:
- client.send(message)
- def handle(client):
- while True:
- try:
- message = client.recv(1024)
- broadcast(message)
- except:
- index = clients.index(client)
- clients.remove(client)
- client.close()
- nickname = nicknames[index]
- broadcast(f'{nickname} has left the chat.'.encode('ascii'))
- nicknames.remove(nickname)
- break
- def receive():
- while True:
- client, address = server.accept()
- print(f"Connected with {str(address)}")
- client.send('NICK'.encode('ascii'))
- nickname = client.recv(1024).decode('ascii')
- nicknames.append(nickname)
- clients.append(client)
- print(f'Nickname of the client is {nickname}.')
- broadcast(f'{nickname} joined the chat!'.encode('ascii'))
- client.send('Connected to the server.'.encode ('ascii'))
- thread = threading.Thread(target=handle, args=(client,))
- thread.start()
- receive()
Advertisement
Add Comment
Please, Sign In to add comment