def test_three_chat_clients(): print() expected = [ ChatMessage('client1', 'message 1'), ChatMessage('client2', 'message 2'), ChatMessage('client3', 'message 3'), ChatMessage('client3', 'message 4'), ChatMessage('client2', 'message 5'), ChatMessage('client1', 'message 6'), ] chat_host = ChatRoom() chat_client1 = ChatClient('client1', chat_host) chat_client2 = ChatClient('client2', chat_host) chat_client3 = ChatClient('client3', chat_host) chat_client1.new_message('message 1') chat_client2.new_message('message 2') chat_client3.new_message('message 3') chat_client3.new_message('message 4') chat_client2.new_message('message 5') chat_client1.new_message('message 6') actual = chat_host.messages assert expected == actual
def test_connection(self): """ Tests the client-server connection. """ chat_client = ChatClient(self.HOST, self.PORT) chat_client.start() time.sleep(1) chat_client.stop()
def chat_client_thread(port, pub): print("[Client] Public: ", pub) exchange_client = ExchangeClient(port, pub) sym_key = chat_client_gen_sym_key() print("[Client] sym_key: ", sym_key) exchange_client.send_message(sym_key) chat_client = ChatClient(port, sym_key) while True: print('Send> ', end='') msg = input() chat_client.send_message(msg)
def connect(host, port): chat_client = ChatClient(ip=host, port=port) loop = asyncio.get_event_loop() loop.run_until_complete(chat_client._connect()) # display menu, wait for command from user, invoke method on client asyncio.ensure_future(handle_user_input(chat_client=chat_client, loop=loop)) asyncio.ensure_future(display_msgs(chat_client=chat_client)) loop.run_forever()
def start(self): with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: s.bind((self.address, self.port)) s.listen(5) stop = False while not stop: print('Waiting connections...') conn, addr = s.accept() print(f'Connected by: {addr}.') client = ChatClient(conn, addr) client.start() client.attach(self) self.clients.append(client)
import socket from chat_client import ChatClient HOST = '' PORT = 4006 clients = [] with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: s.bind((HOST, PORT)) s.listen(5) stop = False while not stop: print('Waiting connections...') conn, addr = s.accept() print(f'Connected by: {addr}.') client = ChatClient(conn, addr, clients) client.start() clients.append(client)
def __init__(self): self.chat_client = ChatClient(self) self.conn = None pass
def __init__(self, port, host): self.username: str = '' self._client = ChatClient(port, host)
)['mensagem'] == 'Você foi desconectado da sala de chat': client.client_socket.close() break def send_mensage(client): while True: mensagem = input('') client.send_mensage(mensagem) if mensagem == '/SAIR': break user_input = input('Digite /ENTRAR para ENTRAR: ') if user_input == '/ENTRAR': nickname = input('Digite o seu nickname: ') server_ip = input('Digite o ip do servidor: ') server_port = int(input('Digite a porta associada: ')) # Porta: 65432 #local_host: '127.0.0.1' client = ChatClient(nickname, server_ip, server_port) print("Conectado com o servidor, pode digitar as mensagens") t_1 = threading.Thread(target=send_mensage, args=(client, )) t_2 = threading.Thread(target=listen_mensage, args=(client, )) t_1.start() t_2.start()