import socket import threading import os def cliente(): soquete = socket.socket(socket.AF_INET, socket.SOCK_STREAM) soquete.connect(("192.168.1.10", 8000)) print(" ---------- ") print(" | CHAT TCP | ") print(" ---------- ") nome = input("\nDigite seu nome: ") print("\nDigite 'sair' para encerrar a sessão.") def send(): while True: mensagem = input() if mensagem == "sair": soquete.close() os._exit(1) envio_mensagem = "{}: {}".format(nome, mensagem) soquete.sendall(envio_mensagem.encode()) def rec(): while True: recebe_mensagem = soquete.recv(1024) print(" " + recebe_mensagem.decode()) maquina1 = threading.Thread(target=send) maquina2 = threading.Thread(target=rec) maquina1.start() maquina2.start() def servidor(): soquete = socket.socket(socket.AF_INET, socket.SOCK_STREAM) soquete.bind(("192.168.1.10", 8000)) # Bind para escutar na porta 8000 soquete.listen(1) print("Aguardando conexão...") conexao, endereco = soquete.accept() print(f"Conexão estabelecida com {endereco}") def rec(): while True: try: recebe_mensagem = conexao.recv(1024) if not recebe_mensagem: break print(recebe_mensagem.decode()) except: break def send(): while True: mensagem = input() if mensagem == "sair": conexao.close() break conexao.sendall(mensagem.encode()) thread_recv = threading.Thread(target=rec) thread_send = threading.Thread(target=send) thread_recv.start() thread_send.start() opcao = input("Escolha '1' para servidor ou '2' para cliente: ") if opcao == '1': servidor() elif opcao == '2': cliente() else: print("Opção inválida.")