¡Hola!
Python ciertamente tiene un soporte suficiente para la programación de sockets. La biblioteca estándar de Python tiene un módulo llamado socket
que proporciona una interfaz de red de Internet de bajo nivel. Esta interfaz es común en diferentes lenguajes de programación, ya que utiliza llamadas del sistema a nivel del sistema operativo.
Para crear un socket, hay una función llamada socket
. Acepta argumentos de family
, type
y proto
(consulte la documentación para más detalles). Para crear un socket TCP, debe usar socket.AF_INET
o socket.AF_INET6
para la family
y socket.SOCK_STREAM
para el type
:
- ¿Es posible abrir un archivo en mi computadora y leerlo o escribirlo usando un script en un sitio web como usar fopen ()?
- ¿Cuál es la mejor biblioteca matemática para hacer cálculos de alta resolución con Node.js?
- ¿Quién es un desarrollador web?
- ¿Qué debería saber todo desarrollador pero probablemente no?
- Un gerente de producto que no es desarrollador, ¿tengo que aprender codificación?
importar sockets = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
Devuelve un objeto de socket que tiene los siguientes métodos principales:
-
bind()
-
listen()
-
accept()
-
connect()
-
send()
-
recv()
bind()
, listen()
y accept()
son específicos para los sockets del servidor. connect()
es específico para sockets de clientes. send()
y recv()
son comunes para ambos tipos. Aquí hay un ejemplo de servidor Echo de la documentación:
importar sockets = socket.socket (socket.AF_INET, socket.SOCK_STREAM) s.bind (('localhost', 50000)) s.listen (1) conn, addr = s.accept () mientras 1: data = conn.recv (1024) si no son datos: break conn.sendall (data) conn.close ()
Aquí creamos un socket de servidor, lo vinculamos a un puerto local y al puerto 50000, y comenzamos a escuchar las conexiones entrantes. Para aceptar una conexión entrante, llamamos al método accept()
que se bloqueará hasta que se conecte un nuevo cliente. Cuando esto sucede, crea un nuevo socket y lo devuelve junto con la dirección del cliente. Luego, en un ciclo infinito, lee los datos del socket en lotes de 1024 bytes usando el método recv()
hasta que devuelve una cadena vacía. Después de eso, envía todos los datos entrantes utilizando un método conveniente sendall()
que en su interior llama repetidamente a recv()
. Y después de eso, simplemente cierra la conexión del cliente. Este ejemplo puede servir solo una conexión entrante porque no llama a accept()
en un ciclo.
Puede leer el resto de ‘Trabajar con sockets TCP en Python 2.X’ visitando nuestro blog en Trabajar con sockets TCP en Python 2.x con select