Sockets
Andres Sanoja
85465 5000
puerto de salida puerto de entrada
Cliente Servidor
87624 158456
puerto de entrada puerto de salida
Puertos bien conocidos o del sistema (<1024)
http 80, ssh 22, https 443, etc…
Puertos efímeros o dinámicos
flask 5000
Cliente
import socket
HOST = '[Link]' # Dirección IP del servidor
PORT = 5000 # Puerto del servidor
with [Link](socket.AF_INET, socket.SOCK_STREAM) as s:
try:
[Link]((HOST, PORT))
mensaje = "¡Hola desde el cliente!"
[Link]([Link]('utf-8')) # Envía el mensaje al servidor
data = [Link](1024) # Recibe la respuesta del servidor
print(f"Cliente recibió: {[Link]('utf-8')}")
except [Link] as e:
print(f"Error de conexión: {e}")
Servidor
import socket
HOST = '[Link]' # Dirección IP del servidor
PORT = 5000 # Puerto de escucha del servidor
with [Link](socket.AF_INET, socket.SOCK_STREAM) as s:
[Link]((HOST, PORT))
[Link](1) # Espera una conexión
print(f"Servidor escuchando en {HOST}:{PORT}")
conn, addr = [Link]()
with conn:
print(f"Conectado por {addr}")
data = [Link](1024) # Recibe hasta 1024 bytes de datos
if data:
mensaje_recibido = [Link]('utf-8')
print(f"Servidor recibió: {mensaje_recibido}")
respuesta = f"Servidor recibió tu mensaje: '{mensaje_recibido}'".encode('utf-8')
[Link](respuesta) # Envía una respuesta al cliente
Actividad
+ Programar una aplicación distribuida simple usando sockets. Un cliente y un
servidor
+ Programar en Python un Chat basado en Sockets. Varios clientes y un
servidor
+ Subir los archivos y comentar los resultados en el aula virtual
[Link]