Envoyer une chaîne à l'aide de Python Socket

Zeeshan Afridi 30 janvier 2023
  1. Sockets en Python
  2. Méthodes intégrées pour réaliser des sockets en Python
  3. Client et serveur dans la programmation par socket
  4. Envoyer une chaîne à l’aide de la communication client-serveur dans Python Socket
Envoyer une chaîne à l'aide de Python Socket

Dans cet article, nous aborderons les sockets, les méthodes intégrées dans les sockets, le serveur et le client, et comment parvenir à une communication réussie avec les sockets en Python. Les sockets jouent le rôle de pont entre les côtés serveur et client pour la réception et l’envoi de données.

Dans le code Python, nous allons créer des sockets, et à l’aide de sockets, nous passerons des chaînes et établirons les connexions entre le client et le serveur.

Sockets en Python

Les sockets sont définis comme les points de terminaison conçus pour recevoir et envoyer des données. Il y a deux prises dans un seul réseau ; la combinaison d’une adresse IP et d’un port est présente dans les sockets.

Un seul appareil a n nombre de sockets en fonction des numéros de port. Différents types de ports sont disponibles pour différents protocoles.

Voici quelques numéros de port standard et leurs protocoles.

Protocole La description
HTTP Son numéro de port est 80 et ses bibliothèques Python sont httplib, urllib et xmlrpclib. Le port HTTP est utilisé pour les pages Web.
FTP Son numéro de port est 20, et ses librairies Python sont ftplib et urllib. Ce port est utilisé pour le transfert de fichiers.
NNTP Son numéro de port est 119, et sa bibliothèque Python est nntplib. Ce port est utilisé pour les nouvelles non envoyées.
SMTP Son numéro de port est le 25, et sa bibliothèque Python est smtplib. Ce port est utilisé pour envoyer des e-mails.
TELNET Son numéro de port est le 23 et sa bibliothèque Python est telnetlib. Ce port est utilisé pour les lignes de commande.
Pop3 Son numéro de port est le 110 et sa bibliothèque Python est poplib. Ce port est utilisé pour récupérer les e-mails.
Gopher Son numéro de port est 70, et sa bibliothèque Python est gopherlib. Ce port est utilisé pour le transfert de documents.

Méthodes intégrées pour réaliser des sockets en Python

Il faut importer le module ou framework Socket pour réaliser des sockets en Python. Tous ces modules consistent en des méthodes intégrées, qui aident à créer des sockets et aident également à s’associer les uns aux autres.

Voici quelques méthodes intégrées robustes pour les sockets :

  • La méthode Socket.socket() crée des sockets. Il est requis des deux côtés, comme les côtés client et serveur.
  • Socket.accept() permet d’accepter les connexions. La méthode Socket.accept() renvoie une paire de valeurs comme (conn, adresse).
  • Socket.bind() est utilisé pour lier les adresses spécifiées en paramètre.
  • Socket.close() représente que le socket est fermé.
  • Socket.connect() permet de connecter l’adresse indiquée en paramètre.
  • Socket.listen() est utilisé pour écouter les commandes du serveur ou du client.

Client et serveur dans la programmation par socket

Ci-dessous, vous apprendrez ce que client et serveur signifient dans la programmation par socket.

Client

L’ordinateur ou le logiciel qui reçoit des informations ou des données du serveur est appelé un client. Le client demande des services au serveur ; un navigateur Web est le meilleur exemple de client.

Serveur

Un serveur est un programme, un ordinateur ou un périphérique utilisé pour gérer les ressources du réseau. Un serveur peut être le même appareil, un ordinateur local ou distant.

Envoyer une chaîne à l’aide de la communication client-serveur dans Python Socket

Nous allons créer deux fichiers pour la communication à partir de sockets dans des fichiers Python, l’un pour le côté serveur et l’autre pour le côté client. Et il y aura deux programmes pour créer des liens.

Côté serveur dans Python Socket

Nous allons d’abord créer le code côté serveur. Nous utiliserons des méthodes intégrées pour créer le code côté serveur.

Le code côté serveur est le suivant.

import socket

s = socket.socket(
    socket.AF_INET, socket.SOCK_STREAM
)  # Socket will create with TCP and IP protocols
# This method will bind the sockets with server and port no
s.bind(("localhost", 9999))
s.listen(1)  # Will allow a maximum of one connection to the socket
c, addr = s.accept()  # will wait for the client to accept the connection

print("CONNECTION FROM:", str(addr))  # Will display the address of the client

c.send(
    b"HELLO, Are you enjoying programming?/Great! Keep going"
)  # Will send message to the client after encoding

msg = "Take Care.............."
c.send(msg.encode())
c.close()  # Will disconnect from the server

Production:

This connection is from: ('127.0.0.1', 50802)

Côté client dans Python Socket

Le client enverra le message au serveur, et le serveur répondra à ce message. Le côté client utilisera également des méthodes intégrées dans le code.

Côté client, nous allons d’abord créer un socket. Ensuite, nous connecterons l’adresse IP et le numéro de port de l’hôte.

Code:

import socket

s = socket.socket(
    socket.AF_INET, socket.SOCK_STREAM
)  # Socket will create with TCP and, IP protocols
s.connect(("localhost", 9999))  # Will connect with the server
# Will receive the reply message string from the server at 1024 B
msg = s.recv(1024)

while msg:
    print("Received:" + msg.decode())
    msg = s.recv(1024)  # Will run as long as the message string is empty

s.close()  # Will disconnect the client

Production:

The message is Revived: HELLO, Are you enjoying programming?    Great! Keep going

The message is Revived: Take Care..............

Lorsque le code donné s’exécute, une connexion est établie entre le serveur et le client. Et après la connexion, l’écran du client affichera un message.

Le message sera :

HELLO, Are you enjoying programming?    Great! Keep going

Et l’autre message sera :

Take Care..............

Ce message sera affiché côté client car il a été envoyé par le côté serveur. De cette façon, le code s’exécutera et donnera une sortie d’envoi de chaînes via des sockets en Python.

Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn

Article connexe - Python Socket