Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ########
- #SERVER#
- ########
- import socket
- import threading
- clients = []
- def printToAll(msg):
- print(msg)
- for c in clients:
- c[0].send(b'\x01' + msg.encode())
- def remove(id):
- nick = clients[id][1]
- clients.pop(id)
- printToAll('Server: ' + nick + ' has been disconnected')
- def Work(sock):
- sock.send(b'\x00')
- try:
- nick = sock.recv(64).decode('UTF-8')
- except:
- return
- clients.append((sock, nick))
- printToAll('Server: ' + nick + ' has been connected')
- id = len(clients)-1
- while True:
- try:
- data = sock.recv(64).decode('UTF-8')
- if not data:
- break
- printToAll(nick + ': ' + data)
- except:
- break
- remove(id)
- sock = socket.socket()
- sock.bind(('', 9090))
- sock.listen(10)
- while True:
- conn, addr = sock.accept()
- threading.Thread(target=Work, args=(conn,), daemon = True).start()
- ########
- #Client#
- ########
- import socket
- import threading
- def Listen(sock):
- while True:
- data = sock.recv(64)
- if data[0] == 1:
- print(data[1:].decode('UTF-8'))
- sock = socket.socket()
- sock.connect(('localhost', 9090))
- data = sock.recv(2)
- print(data)
- if data == b'\x00':
- nick = input("Nick: ")
- sock.send(nick.encode())
- threading.Thread(target=Listen, args=(sock,), daemon = True).start()
- while True:
- sock.send(input().encode())
Advertisement
Add Comment
Please, Sign In to add comment