Envoyer une chaîne à l'aide de Python Socket
- Sockets en Python
- Méthodes intégrées pour réaliser des sockets en Python
- Client et serveur dans la programmation par socket
- Envoyer une chaîne à l’aide de la communication client-serveur dans 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éthodeSocket.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 is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.
LinkedIn