Attentes:
Voici quelques points clés peuvent être appris de cet article
Diagramme de configuration générale:
Système A et B devraient être capables de cingler.
Hypothèses ou limitations:
Remarque: vous pouvez vérifier la référence pour essayer d'envoyer et de recevoir des paquets UDP via Linux CLI avant d'aller pour des fichiers Python pour effectuer la même tâche.
Fichiers Python:
Il y a deux fichiers Python serveur.py et client.py. Le fichier serveur et le fichier client doivent être présents respectivement dans le système serveur et le système client.
Serveur.py
socket d'importationClient.py
socket d'importationEnvoyer / recevoir un paquet UDP:
Prenons un exemple comme nous enverrons un paquet UDP du système A au système B. Ainsi, dans le concept de serveur-client, nous devons exécuter le serveur à côté du système B et client du système.
Nous avons également des adresses IP valides.
Système A IP: 192.168.1.6Maintenant, contrairement à envoyer et à recevoir des paquets UDP via Linux CLI, nous allons fonctionner serveur.py dans le système, b [192.168.1.102] et ensuite nous courirons client.py Dans le système A [192.168.1.6].
Comment exécuter le serveur.py en 192.168.1.102?
Voici la commande pour exécuter le serveur.py
$ Python3 Server.py 192.168.1.102 4444Voici la capture d'écran
Ici, il y a deux arguments pour le programme Python. 1St L'argument est une adresse IP du serveur lui-même, ici son 192.168.1.102 et 2nd L'argument est le port que le serveur écoutera, ici nous avons choisi 4444.
Comment gérer le client.py en 192.168.1.6?
Voici la commande pour exécuter le client.py
$ Client Python3.py 192.168.1.102 4444Voici la capture d'écran
Ici, il y a deux arguments pour le programme Python. 1St L'argument est l'adresse IP du serveur, ici son 192.168.1.102 et 2nd L'argument est le port où le serveur s'exécute. Pour notre exemple, c'est 4444.
Envoyer ou recevoir du texte:
Maintenant, comme vous pouvez le voir, nous sommes prêts à communiquer entre deux systèmes. Mais nous devons d'abord partir du client. Tapons quelque chose dans le client et voyons s'il atteint le serveur ou non.
Envoyer des données du client: "Je viens du client"
Capture d'écran Client:
Maintenant, ce message client doit venir au serveur. Voici la capture d'écran du serveur.
Maintenant, nous pouvons voir du côté du serveur également, nous avons une option pour envoyer quelque chose au client. Essayons ça.
Envoyer des données du client: "Je suis du serveur"
Capture d'écran du serveur:
Et voici la capture d'écran côté client.
Maintenant, cela se déroulera sur des moments infinis jusqu'à ce que nous arrêtions le programme Python en utilisant Ctrl + C.
Vérifiez le paquet UDP dans Wireshark:
Maintenant, nous avons fait une communication, mais comment pouvons-nous savoir que UDP a été utilisé pour envoyer ou recevoir ces paquets. Ainsi, nous pouvons vérifier la capture dans Wireshark.
Voyons le paquet lorsque le client [192.168.1.6] Envoyé des données [«Je suis du client»] au serveur [192.168.1.6].
Explication du code:
Pour le code Python Basic Explication Reportez-vous «Python Socket File Transfer Send» dans la section de référence.
Nous expliquerons uniquement les codes de lignes importants pour le fichier python client et serveur. Il existe des commentaires utiles dans le code client et serveur.
Explication du code client:
Si Len (Sys.argv) == 3:La ligne ci-dessus est nécessaire pour vérifier si l'utilisateur a adopté des arguments obligatoires requis. Ou bien le programme quittera. Le même chèque est là dans le programme serveur.
s = socket.prise.Af_inet, socket.Sock_dgram, 0)La ligne ci-dessus est de créer un serveur de socket avec UDP [Sock_dgram] protocole. Le même code est là dans le serveur.py.
Bien que vrai:Pour exécuter le programme dans Infinite Loop jusqu'à ce que l'utilisateur fasse Ctrl + C. Le même code est là dans le serveur.py.
s.sendto (send_data.Encode ('utf-8'), (ip, port))Pour envoyer des données pour mentionné IP et port nombre.
données, adresse = s.Recvfrom (4096)Pour recevoir des données provenant du serveur. Le même code est là dans le serveur.py.
Explication du code du serveur:
s.sendto (send_data.Encode ('UTF-8'), adresse)Envoyer des données à l'adresse du client.
Conclusion:
Nous pouvons envoyer ou recevoir des données UDP à l'aide du programme Python. En interne, il utilise le mécanisme du client du serveur.
Les références:
Pour comprendre TCP: https: // linuxhint.com / tcp_packet_capture_analysis /
Pour comprendre UDP: https: // linuxhint.com / udp_wireshark_analysis /
Envoyer et recevoir des paquets UDP via Linux CLI:
https: // linuxhint.com / send_receive_udp_packet_linux_cli /
Python Socket File Transfer Send:
https: // linuxhint.com / python_socket_file_transfer_send /