first commit

master
Santiago 10 months ago
commit bffd5996e7

@ -0,0 +1,33 @@
import socket
import threading
# Configuración del cliente
HOST = 'localhost'
PORT = 5555
# Crear un socket del cliente
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect((HOST, PORT))
def receive_messages():
"""Recibe mensajes del servidor y muestra en pantalla."""
while True:
try:
message = client_socket.recv(1024).decode('utf-8')
print(message)
except:
# En caso de error, salir del bucle
break
def send_messages():
"""Envía mensajes al servidor."""
while True:
message = input()
client_socket.send(message.encode('utf-8'))
# Iniciar hilos para recibir y enviar mensajes
receive_thread = threading.Thread(target=receive_messages)
receive_thread.start()
send_thread = threading.Thread(target=send_messages)
send_thread.start()

@ -0,0 +1,62 @@
import socket
import threading
# Configuración del servidor
HOST = ''
PORT = 5555
# Crear un socket del servidor
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind((HOST, PORT))
server_socket.listen()
# Lista para almacenar conexiones de clientes
clients = []
def broadcast(message, client_socket):
"""Envía el mensaje a todos los clientes conectados."""
for client in clients:
# Excepto al cliente que envió el mensaje
if client != client_socket:
try:
client.send(message)
except:
# Eliminar clientes que no responden
clients.remove(client)
def handle_client(client_socket):
"""Maneja la conexión de un cliente."""
while True:
try:
# Recibir mensajes del cliente
message = client_socket.recv(1024)
if not message:
break
# Imprimir el mensaje en el servidor
print(f"Mensaje de {client_socket.getpeername()}: {message.decode('utf-8')}")
# Broadcast del mensaje a todos los clientes
broadcast(message, client_socket)
except:
# Eliminar clientes que causan problemas
clients.remove(client_socket)
break
def main():
print(f"Servidor en escucha en {HOST}:{PORT}")
while True:
# Aceptar nuevas conexiones
client_socket, address = server_socket.accept()
print(f"Conexión aceptada desde {address}")
# Agregar el nuevo cliente a la lista
clients.append(client_socket)
# Iniciar un hilo para manejar al cliente
thread = threading.Thread(target=handle_client, args=(client_socket,))
thread.start()
if __name__ == "__main__":
main()
Loading…
Cancel
Save

Powered by INFORMATICA.FP.EDU.ES.