Python est un langage de programmation largement utilisé, concis et facile à lire. Parmi eux, le module socket est un module important pour la programmation réseau en Python. Il peut facilement créer des clients et des serveurs et mettre en œuvre une communication réseau. Cet article présentera en détail comment utiliser le module socket pour créer des clients et des serveurs dans Python 2.x, et sera accompagné d'exemples de code.
1. Présentation du module socket
Le module socket est l'une des bibliothèques standard de Python. Il fournit des fonctions et des classes liées au réseau qui peuvent être utilisées pour créer différents types de sockets. Grâce aux sockets, la communication entre différents ordinateurs peut être réalisée, y compris les requêtes et réponses, les transferts de fichiers, etc.
Dans Python 2.x, le module socket fournit principalement deux types de sockets : les sockets stream (socket.SOCK_STREAM) et les sockets datagramme (socket.SOCK_DGRAM). Les sockets Stream peuvent être utilisées pour établir une communication fiable basée sur la connexion, tandis que les sockets datagramme sont utilisées pour une communication sans connexion.
2. Créer un client
- Importer le module socket
Tout d'abord, vous devez importer le module socket Python afin d'utiliser les fonctions et les classes qu'il contient.
import socket
Copier après la connexion
Copier après la connexion
- Créer un socket
Avant de créer le client, vous devez utiliser la fonction socket.socket() pour créer un socket. Cette fonction accepte deux paramètres. Le premier paramètre est la famille d'adresses, qui spécifie le type de socket (tel que IPv4 ou IPv6). Le deuxième paramètre est le type de socket (socket de flux ou interface de socket de datagramme).
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
Copier après la connexion
- Connectez-vous au serveur
En utilisant la méthode connect() du socket client, une connexion peut être établie avec le serveur. Cette méthode accepte un paramètre, l'adresse IP et le numéro de port du serveur, sous la forme d'un tuple. Après une connexion réussie, une nouvelle socket sera renvoyée pour la communication.
server_address = ('192.168.0.100', 8080)
client_socket.connect(server_address)
Copier après la connexion
- Envoyer et recevoir des données
Envoyez des données au serveur en utilisant la méthode send() du socket client et recevez les données renvoyées par le serveur à l'aide de la méthode recv(). La méthode send() accepte un paramètre chaîne, tandis que la méthode recv() accepte un paramètre entier pour spécifier la longueur maximale des données à recevoir.
data = 'Hello, server!'
client_socket.send(data)
response = client_socket.recv(1024)
print response
Copier après la connexion
- Fermez le socket
Une fois la communication client et serveur terminée, le socket doit être fermé pour libérer des ressources. Un socket peut être fermé en utilisant la méthode close() du socket client.
client_socket.close()
Copier après la connexion
3. Créer un serveur
- Importer le module socket
Comme pour créer un client, vous devez d'abord importer le module socket.
import socket
Copier après la connexion
Copier après la connexion
- Créer un socket
Utilisez la fonction socket.socket() pour créer un socket, spécifiez la famille d'adresses et le type de socket. Dans le même temps, le socket doit être configuré pour être réutilisable afin de pouvoir être redémarré immédiatement après un arrêt inattendu du serveur.
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
Copier après la connexion
- Lier l'adresse du serveur
En utilisant la méthode bind() du socket du serveur, l'adresse du serveur peut être liée au socket. Cette méthode accepte un paramètre, un tuple contenant l'adresse IP de l'hôte du serveur et le numéro de port sur lequel il écoute.
server_address = ('', 8080)
server_socket.bind(server_address)
Copier après la connexion
- Écoutez les demandes de connexion
Le socket du serveur doit utiliser la méthode Listen() pour commencer à écouter les demandes de connexion. Cette méthode accepte un paramètre qui spécifie le nombre maximum de connexions que le serveur peut gérer en même temps.
server_socket.listen(5)
Copier après la connexion
- Accepter les connexions et gérer les demandes
En utilisant la méthode accept() du socket serveur, vous pouvez accepter les connexions des clients. Cette méthode renverra un nouveau socket pour la communication avec le client. Lors de la communication avec le client, vous pouvez utiliser la méthode recv() pour recevoir les données envoyées par le client et la méthode send() pour envoyer les données de réponse.
client_socket, client_address = server_socket.accept()
data = client_socket.recv(1024)
print data
response = 'Hello, client!'
client_socket.send(response)
Copier après la connexion
- Fermer le socket
Une fois que le serveur a terminé tous les traitements, le socket doit être fermé. Un socket peut être fermé en utilisant la méthode close() du socket serveur.
server_socket.close()
Copier après la connexion
Avec les étapes ci-dessus, vous pouvez facilement créer des clients et des serveurs à l'aide du module socket dans Python 2.x. Le code peut être modifié et optimisé de manière appropriée en fonction des besoins réels pour obtenir une communication réseau plus complexe et plus efficace.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!