English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Programación de sockets en Python

En el canal de comunicación bidireccional, el socket es dos extremos. Los sockets pueden comunicarse entre procesos en la misma máquina o en diferentes continentes.

Los sockets se implementan por diferentes tipos de canales TCP, UDP.

Para crear un Socket, necesitamos el módulo socket y la función socket.socket().

Sintaxis

my_socket = socket.socket(socket_family, socket_type, protocol=0)

Diferentes métodos del socket del servidor

my_socket.bind()

Este método se utiliza para enlazar la dirección (par de nombre de host, número de puerto) al socket.

my_socket.listen()

Este método se utiliza para configurar y comenzar a escuchar el TCP.

my_socket.accept()

Este método se utiliza para aceptar conexiones de clientes TCP, esperando que la conexión llegue (bloqueante).

Métodos diferentes en el conector de cliente

my_socket.connect()

Este método inicia una conexión de servidor TCP de manera activa.

Métodos de socket genéricos

my_socket.recv()

Este método recibe mensajes TCP

my_socket.send()

Este método transmite mensajes TCP

my_socket.recvfrom()

Este método recibe mensajes UDP

my_socket.sendto()

Este método transmite mensajes UDP

my_socket.close()

Este método cierra el socket

my_socket.gethostname()

Este método devuelve el nombre del host.

Conector de servidor

Ejemplo

import socket
my_socket = socket.socket()      # Crear un objeto de socket
my_host = socket.gethostname()
my_port = 00000# Almacenar un puerto para su servicio.
my_socket.bind((my_host, my_port))
my_socket.listen(5)      # Ahora espera la conexión del cliente.
while True:
   cl, myaddr = my_socket.accept()     # Establecer conexión con el cliente.
   print ('Got connection from', myaddr)
   cl.send('Thank you for connecting')
   cl.close()     # Cerrar la conexión

Conector de cliente

Ejemplo

import socket      # Importar módulo socket
my_socket = socket.socket()      # Crear un objeto de socket
my_host = socket.gethostname()     # Obtener el nombre de la máquina local
my_port = 00000# Almacenar un puerto para su servicio.
my_socket.connect((my_host, my_port))
print (my_socket.recv(1024))
my_socket.close