Les sockets avec Python

La programmation des Sockets est un moyen de connecter deux nœuds sur un réseau pour communiquer entre eux. Un socket (nœud) écoute sur un port particulier et une adresse IP, tandis que l’autre socket contacte l’autre pour établir une connexion. Le serveur crée le socket d’écoute lors du contact client avec le serveur.


 
 
La programmation des sockets commence en important la bibliothèque « socket » et en créant une simple socket.

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

Ici, nous avons créé une instance de socket et lui avons transmis deux paramètres. Le premier paramètre est AF_INET et le deuxiéme est SOCK_STREAM. AF_INET fait référence à la famille d’adresses ipv4. Le SOCK_STREAM signifie le protocole TCP orienté connexion.

Maintenant, nous pouvons nous connecter à un serveur en utilisant ce socket.
 

Connexion à un serveur

Notez que si une erreur se produit lors de la création d’un socket, une erreur socket.error est levée et nous ne pouvons nous connecter à un serveur qu’en connaissant son adresse IP. Vous pouvez trouver l’IP d’un serveur en utilisant ceci:

> ping www.waytolearnx.com


 
Vous pouvez également trouver l’IP en utilisant le script Python suivant:

import socket 

ip = socket.gethostbyname('www.waytolearnx.com')
print(ip)

Sortie:

70.40.216.229

 
 
Voici un exemple de script pour se connecter à WayToLearnX:

import socket
import sys  
  
try: 
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
    print("Socket créé avec succès")
except socket.error as err: 
    print("La création du socket a échoué %s" %(err)) 
  
# port par défaut pour le socket
port = 80
  
try: 
    ip = socket.gethostbyname('www.waytolearnx.com') 
except socket.gaierror: 
    print("Une erreur s'est produite lors de la résolution de l'hôte") 
    sys.exit() 
  
# connexion au serveur
s.connect((ip, port)) 
  
print("Le socket s'est connecté avec succès à WayToLearnX sur le port == %s" %(ip))

Sortie:

Socket créé avec succès
Le socket s'est connecté avec succès à WayToLearnX sur le port == 70.40.216.229
  • Tout d’abord, nous avons créer une socket.
  • Ensuite, nous avons résolu l’IP de WayToLearnX et, enfin, on s’est connectés à WayToLearnX.
  • Maintenant, nous devons savoir comment envoyer des données via un socket.
  • Pour envoyer des données, la bibliothèque sockets a une fonction sendall. Cette fonction vous permet d’envoyer des données à un serveur auquel le socket est connecté et le serveur peut également envoyer des données au client à l’aide de cette fonction.

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *