Aquí tienes un ejemplo práctico de cómo establecer una conexión cliente-servidor utilizando la librería socket
en Python. Este ejemplo incluye tanto el código del servidor como el del cliente.
El servidor escucha en un puerto específico, acepta conexiones y envía un mensaje al cliente.
import socket
# Crear el socket del servidor
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Vincular el socket a una dirección y puerto
host = 'localhost' # Puedes usar '0.0.0.0' para aceptar conexiones en todas las interfaces
port = 12345
server_socket.bind((host, port))
# Escuchar conexiones entrantes
server_socket.listen(1)
print(f"Servidor escuchando en {host}:{port}...")
# Aceptar la conexión de un cliente
conn, addr = server_socket.accept()
print(f"Conexión establecida con {addr}")
# Enviar un mensaje al cliente
conn.send(b"¡Hola, cliente! Bienvenido al servidor.")
# Recibir datos del cliente
data = conn.recv(1024) # Tamaño del buffer
print(f"Mensaje recibido del cliente: {data.decode()}")
# Cerrar la conexión
conn.close()
print("Conexión cerrada.")
El cliente se conecta al servidor y envía un mensaje de respuesta.
import socket
# Crear el socket del cliente
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Conectar al servidor
host = 'localhost'
port = 12345
client_socket.connect((host, port))
print(f"Conectado al servidor en {host}:{port}")
# Recibir mensaje del servidor
data = client_socket.recv(1024) # Tamaño del buffer
print(f"Mensaje recibido del servidor: {data.decode()}")
# Enviar un mensaje al servidor
client_socket.send(b"¡Gracias, servidor! Estoy conectado.")
# Cerrar la conexión
client_socket.close()
print("Conexión cerrada.")
servidor.py
.cliente.py
.python servidor.py
python cliente.py
Servidor:
socket.AF_INET
para IPv4 y socket.SOCK_STREAM
para una conexión TCP.bind
y listen
).accept
) y maneja el intercambio de datos.Cliente:
connect
para establecer una conexión con el servidor.send
y recv
.