Expectativas:
Aquí hay algunos puntos clave se pueden aprender de este artículo
Diagrama de configuración general:
El sistema A y B deberían hacer rodeos entre sí.
Supuestos o limitaciones:
Nota: Puede verificar la referencia para probar los paquetes Enviar y recibir UDP a través de Linux CLI antes de buscar archivos Python para hacer la misma tarea.
Archivos de Python:
Hay dos archivos de Python servidor.py y cliente.py. El archivo del servidor y el archivo de cliente deben estar presentes en el sistema del servidor y el sistema de cliente, respectivamente,.
Servidor.py
TOCKETOR DE IMPORTACliente.py
TOCKETOR DE IMPORTAEnviar/recibir el paquete UDP:
Tomemos un ejemplo como enviaremos el paquete UDP del sistema A al sistema B. Entonces, en el concepto de servidor-cliente, tenemos que ejecutar el servidor en el lado del sistema B y el cliente en el sistema un lado.
También tenemos direcciones IP válidas.
Sistema A IP: 192.168.1.6Ahora, a diferencia de enviar y recibir paquetes UDP a través de Linux CLI, ejecutaremos servidor.py En el sistema, B [192.168.1.102] y luego correremos cliente.py en el sistema a [192.168.1.6].
Cómo ejecutar el servidor.Py en 192.168.1.102?
Aquí está el comando para ejecutar servidor.py
$ PYTHON3 SERVER.Py 192.168.1.102 4444Aquí está la captura de pantalla
Aquí hay dos argumentos para el programa Python. 1calle El argumento es la dirección IP del servidor en sí, aquí su 192.168.1.102 y 2Dakota del Norte El argumento es puerto qué servidor escuchará, aquí hemos elegido 4444.
Cómo ejecutar el cliente.Py en 192.168.1.6?
Aquí está el comando para ejecutar el cliente.py
$ python3 cliente.Py 192.168.1.102 4444Aquí está la captura de pantalla
Aquí hay dos argumentos para el programa Python. 1calle El argumento es la dirección IP del servidor, aquí es 192.168.1.102 y 2Dakota del Norte El argumento es el puerto donde el servidor se está ejecutando. Para nuestro ejemplo es 4444.
Enviar o recibir algún mensaje de texto:
Ahora, como puede ver, estamos listos para comunicarnos entre dos sistemas. Pero primero debemos comenzar desde el cliente. Escriba algo en el cliente y veamos si llega al servidor o no.
Enviar datos del cliente: "Soy del cliente"
Cliente de formulario de captura de pantalla:
Ahora este mensaje del cliente debería llegar al servidor. Aquí está la captura de pantalla del servidor.
Ahora podemos ver en el lado del servidor también tenemos la opción de enviar algo al cliente. Intentemos eso.
Enviar datos del cliente: "Soy del servidor"
Captura de pantalla del servidor:
Y aquí está la captura de pantalla del lado del cliente.
Ahora esto pasará en tiempos infinitos hasta que detenemos el programa Python usando Ctrl+C.
Consulte el paquete UDP en Wireshark:
Ahora hemos hecho algo de comunicación, pero ¿cómo llegamos a saber que UDP se usó para enviar o recibir esos paquetes?. Entonces, podemos verificar la captura en Wireshark.
Veamos el paquete cuando el cliente [192.168.1.6] enviaron datos ["Soy del cliente"] al servidor [192.168.1.6].
Explicación del código:
Para el código básico de Python, explicación, consulte “Transferencia de archivo de socket de Python” en la sección de referencia.
Solo explicaremos los códigos de líneas importantes para el archivo de Python del cliente y el servidor. Hay comentarios útiles dentro del código del cliente y del servidor.
Explicación del código del cliente:
Si len (sys.argv) == 3:Se requiere la línea anterior para verificar si el usuario ha pasado los argumentos obligatorios requeridos. O de lo contrario el programa saldrá. La misma comprobación está ahí en el programa del servidor.
s = enchufe.enchufe (enchufe.Af_inet, enchufe.SOCK_DGRAM, 0)La línea anterior es crear un servidor Socket con UDP [SOCK_DGRAM] protocolo. El mismo código está en servidor.py.
Mientras que es cierto:Para ejecutar el programa en bucle infinito hasta que el usuario haga Ctrl+C. El mismo código está en servidor.py.
s.sendto (send_data.encode ('utf-8'), (ip, puerto))Para enviar datos para mencionados IP y puerto número.
datos, dirección = s.RecvFrom (4096)Para recibir cualquier dato proveniente del servidor. El mismo código está en servidor.py.
Explicación del código del servidor:
s.sendto (send_data.encode ('utf-8'), dirección)Enviar datos a la dirección del cliente.
Conclusión:
Podemos enviar o recibir datos de UDP usando el programa Python. Internamente utiliza el mecanismo del cliente del servidor.
Referencias:
Para comprender TCP: https: // Linuxhint.com/tcp_packet_capture_analysis/
Para entender UDP: https: // linuxhint.com/udp_wireshark_analysis/
Enviar y recibir paquetes UDP a través de Linux CLI:
https: // linuxhint.com/send_RECEive_UDP_PACKETS_LINUX_CLI/
Python Socket File Transfer Send:
https: // linuxhint.com/python_socket_file_transfer_send/