Los sockets sirven para crear conexiones de comunicación entre las aplicaciones, veamos un ejemplo de socket cliente y servidor con python.
Tengo una Introduccion sobre sockets donde pueden iniciar en el aprendizaje sobre sockets.
Los sockets es una característica que tienen todos los lenguajes de programación, sirven esencialmente para comunicar 2 o mas aplicaciones, en la practica los sockets son la base de internet, debido a que los sockets permiten comunicar 2 aplicaciones remotamente.
Hoy les voy a explicar un ejemplo sencillo de sockets usando python, vamos a tener 2 scripts, uno sera el cliente y otro el servidor.
Servidor en Python
Aquí les dejo el código con comentarios para hacer mas fácil la comprensión.
# Importamos las librerias necesarias import socket # Establecemos el tipo de socket/conexion sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) port = 5000 # Puerto de comunicacion sock.bind(('localhost',port)) # IP y Puerto de conexion en una Tupla print ("esperando conexiones en el puerto ", port) # Vamos a esperar que un cliente se conecte # Mientras tanto el script se va a pausar sock.listen(1) # Cuando un cliente se conecte vamos a obtener la client_addr osea la direccion # tambien vamos a obtener la con, osea la conexion que servira para enviar datos y recibir datos con, client_addr = sock.accept() text = "Hola, soy el servidor!" # El texto que enviaremos con.send(text.encode()) # Enviamos el texto al cliente que se conecta con.close() # Cerramos la conexion sock.close() # Cerramos el socket
Cliente en Python
Ahora el código del cliente, también con comentarios.
# Importamos las librerias necesarias import socket # Establecemos el tipo de socket/conexion sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) port = 5000 # Puerto de comunicacion # Realizamos la conexion al la IP y puerto sock.connect(('localhost',port)) # Leemos los datos del servidor data = sock.recv(4096) # Cerramos el socket sock.close() # Mostramos los datos recibidos print(data.decode())
Ejecutando los Scripts
Ahora que ya tenemos los 2 scripts, vamos a ejecutarlos, se deben ejecutar de manera separada.
En una terminal vamos a ejecutar el servidor y en otra terminal ejecutamos el cliente.
Terminal con el servidor
Al ejecutar la terminal con el servidor, este va a esperar en el puerto 5000, una vez que un cliente se conecte le va a enviar el mensaje y se va a cerrar.
Terminal con el cliente
El script cliente se conecta directamente al puerto 5000, recibe y muestra el texto recibido.
Finalizando
Podemos modificar el cliente y el servidor y modificiar el Puerto o el mensaje, si modifics el host y el Puerto de el script script cliente pueden conectarse con otros sitios tener otro resultados, por ejemplo conectarte google.com en el Puerto 80.
En proximos articulos veremos otros ejemplos de sockets.