Creando un servidor mínimo con Python3 – #Linux

Python permite crear un servidor con el uso de la biblioteca socket. A continuación, una estrutuctura mínima de servidor y cliente para estudio. En este caso, tanto el cliente como el servidor están en la máquina local, pero podemos usar esa estructura básica para conectar remotamente e intercambiar datos.

 

Como debe quedar al acabar.

Estructura:

Un archivo para crear el servidor (server.py)

Un archivo para crear un cliente (client.py)

La instalación básica de Python3 ya viene con las bibliotecas necesarias, necesitaremos socket.

Hay que abrir una terminal para ejecutar server.py, ella quedará ‘escuchando’ a la espera de conexiones de clientes y otra terminal para ejecutar el client.py.

Código:

server.py

import socket #importa la biblioteca socket
mi_socket = socket.socket()          #crea un objeto socket al que llamaré mi_socket
mi_socket.bind(('localhost',8000))   #recibe una tupla con el servidor y el puerto al que quedará escuchando
mi_socket.listen(5)                  #define el numero de clientes que puede atender
while True:                          #crea un ciclo de espera que permanece activo hasta que lo cerremos
print"Escuchando"                    #comunicaciones de clientes
conexion,puerto = mi_socket.accept()
print"Nueva conexion establecida!"    #esta linea apenas da un feedback visual
print puerto                          #muestra el puerto usado por el cliente
peticion = conexion.recv(1024)       #recibe el mensaje del cliente en un paquete de 1024 bytes del paquete
print peticion                        #muestra el mensaje recibido del cliente
conexion.send("Hola, cliente!!!")     #mensaje que recibe el cliente
conexion.close() #al conectarse
Ejecutamos el archivo desde terminal dentro del directorio donde estén los archivos python server.py. La terminal mostrará el texto ‘Escuchando’, eso significa el programa se ejecutó y espera una comunicación del cliente.

Ahora creamos el programa cliente:
client.py

import socket

mi_socket = socket.socket()
mi_socket.connect(('localhost',8000)) #especifica el servidor y puerto al que debe comunicarse

mi_socket.send("Hola, servidor!") #mensaje que enviará al servidor
respuesta = mi_socket.recv(1024) #guarda la respuesta del servidor
print respuesta #imprime la respuesta del servidor
mi_socket.close() #cierra la conexión

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *