Python AF_INET

Python AF_INET
«Un réseau peut être configuré de telle sorte que deux nœuds peuvent interagir les uns avec les autres en utilisant la programmation de socket. Tandis que l'autre socket atteint une autre pour lier, une douille (nœud) écoutant sur un certain port sur une adresse IP. Pendant la connexion du client au serveur, le serveur crée la prise d'écoute. Ils forment la base de la navigation en ligne. La toute première étape de la programmation de socket consiste à incorporer le package de douille et à générer une prise simple.

Af_inet est le tout premier argument, tandis que sock_stream serait le prochain. AF_INET représente la famille d'adresses IPv4. Contrairement à IPv6 à AF INET6, AF INET fait référence à la branche ou au royaume. La communication TCP axée sur la connexion est appelée sock_stream. Dans cet article, nous allons examiner l'utilisation du paramètre AF_INET dans la programmation de socket de Python dans l'outil Spyder."

Exemple 1

Nous avons commencé avec le tout premier exemple de cet article pour créer une connexion sécurisée entre la prise et le serveur hôte. Pour cela, nous avons importé le module de socket de Python dans la première ligne et le module «sys» dans la deuxième ligne à l'aide du mot-clé «Importer». Après cela, nous utilisons le concept de gestion des exceptions en utilisant deux fois la déclaration de Python de Python dans ce code.

Premièrement, l'instruction TRY a créé une nouvelle socket «S» en utilisant la fonction «socket» d'un module de socket en python avec ses deux paramètres, af_inet et sock_stream. L'AF_INET montre que le socket utilisera la famille IPv4, et le SOCK_STR EAM a été utilisé pour utiliser le protocole TCP pour le flux de connexion. La fonction d'impression a utilisé la phrase simple à imprimer à la console de l'outil Spyder pour afficher que la création de socket a été accomplie.

Si la tentative d'obtention de l'adresse IP est réussie, la déclaration à moins que la clause ne soit ignorée et le code restant est exécuté en conséquence. L'instruction expressive a été utilisée pour afficher l'erreur à la console si la création d'une prise a été utilisé sans succès la prise.Erreur d'erreur et l'enregistrer à la variable «E». Après l'instruction Try-Except (), nous avons initialisé le numéro de port «P» à 80 pour la prise, i.e., Le port par défaut de la connexion de socket à un serveur Web est de 80. L'étape suivante consiste à résoudre l'hôte et à connecter la prise avec lui à l'aide de l'adresse IP de l'hôte.

Pour cela, nous utilisons à nouveau la déclaration «Try-Except» dans le code Python. L'instruction TRY a été lancée avec l'utilisation de la fonction GethostByname () du module Socket, qui a utilisé l'URL de Google pour obtenir son «IP» et l'enregistrer dans la variable de la hanche. Si l'adresse IP a été trouvée avec succès, elle n'exécutera pas l'instruction sauf et continuera à exécuter les lignes de code suivantes. Sinon, si l'instruction expressive obtenait le «gaierror» du module de socket, il utilisera l'instruction d'impression pour afficher que nous ne sommes pas en mesure de résoudre l'IP d'un hôte, et le module «sys» sera utilisé pour appeler sa «sortie () »Fonction pour terminer le programme en ce moment.

Après les deux instructions TRY-Except, nous avons utilisé l'adresse IP juste obtenue comme «Hip» et le numéro de port «P» pour connecter la prise avec l'hôte Google, je.e., en utilisant la fonction connect () du module de socket. La déclaration d'impression de la dernière ligne montrera que la prise s'est connectée correctement à l'hôte Google. Économions et exécutons notre code dans le Spyder pour voir ce que nous avons en retour.

socket d'importation
importer sys
essayer:
s = socket.prise.Af_inet, socket.Sock_stream)
Imprimer ("accompli la création de socket!")
sauf la douille.erreur comme e:
Imprimer ("Échec de la création de socket, erreur:% s"% (e))
p = 80
essayer:
hanche = socket.Gethostbyname ('www.Google.com ')
sauf la douille.Gaierror:
Imprimer ("Got Error tout en résolvant l'hôte!")
système.sortie()
s.connecter ((hanche, p))
Print ("Socket a été lié avec succès à Google… !")

Après l'avoir exécuté, nous avons reçu les messages de réussite sur notre écran de console Spyder. Le premier message a montré que la prise a été créée parfaitement, et la deuxième ligne a montré que la connexion a également été établie.

Exemple 02

Un système de communication appelé UDP envoie des paquets individuels via le Web sans assurer une livraison en temps opportun ou une arrivée garantie. La citation du jour est un tel service qui utilise UDP (QOTD). Nous avons commencé ce programme avec l'importation du module de socket. Après cela, nous utilisons le gestionnaire de contexte «avec» pour créer une nouvelle prise comme «SOC» en utilisant les paramètres AF_INET et SOCK_DGRAM dans la fonction Socket () du module de socket pour créer une prise de données de la famille IPv4.

Après cela, nous avons utilisé la variable «texte» pour initialiser un message vide. Le service QOTD fonctionne en passant des informations aléatoires à la prise; Lorsque nous livrons un message vierge, il répond simplement avec une citation. Nous utilisons des séquences binaires pour les communications TCP / UDP. Le numéro de port a été défini sur 17 pour recevoir des données de devis. Nous utilisons l'URL d'un hôte et le numéro de port pour obtenir l'adresse IP «ADR» de l'hôte particulier. Cette adresse «ADR» et le message vide «texte» ont été transmis à la fonction Sendto () du module de socket avec l'objet «SOC» pour l'envoyer à l'hôte particulier.

La fonction «Recvfrom» est la méthode utilisée par les prises UDP pour récupérer des informations. La taille du tampon sert de paramètre. La réponse retournée est un duo (données, adresse), dans laquelle le paramètre «adresse» est l'identifiant de la prise qui a livré les données, et le paramètre «info» est une séquence d'octet contenant les données obtenues. L'instruction d'impression a utilisé la fonction «Decode» pour décoder et afficher les informations que nous avons.

socket d'importation
avec douille.prise.Af_inet, socket.Sock_dgram) comme soc:
texte = b "
p = 17
ADR = ("djxmmx.net ", p)
soc.Sendto (SMS, ADR)
info, adresse = soc.Recvfrom (1024)
Imprimer (info.décoder())

Lorsque nous exécutons ce programme, nous avons la citation en retour.

Conclusion

Cet article concerne l'utilisation de la famille AF_INET des modules de socket à Python. Nous avons essayé deux exemples pour créer une prise, la connecter à l'hôte, envoyer un message vide et recevoir les citations de l'hôte.