Introduction
Dans ce laboratoire, nous allons explorer le monde de la programmation socket en Python, dans le scénario magique d'un carnaval animé et présentant le personnage excentrique d'un artiste de ballons fantastique. Le carnaval est bondé d'excitation et d'énergie, et l'artiste de ballons fantastique enchante le public avec ses créations spectaculaires. L'objectif de ce laboratoire est de plonger dans le domaine de la programmation socket et de tisser nos propres connexions réseau magiques tout comme les créations de ballons fascinantes du carnaval.
Établissement d'une communication client-serveur de base
Dans cette étape, nous allons créer une connexion client-serveur simple en utilisant la programmation socket en Python. Le client et le serveur communiqueront et échangent des données dans une interaction de base.
- Ouvrez un nouveau fichier Python nommé
server.pydans le répertoire~/project. - Implémentez le code côté serveur dans
server.py.
## server.py
import socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('127.0.0.1', 8888))
server_socket.listen(1)
connection, address = server_socket.accept()
with connection:
print('Connecté par', address)
while True:
data = connection.recv(1024)
if not data:
break
connection.sendall(data)
- Ouvrez un autre fichier Python nommé
client.pydans le répertoire~/project. - Implémentez le code côté client dans
client.py.
## client.py
import socket
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(('127.0.0.1', 8888))
client_socket.sendall(b'Hello, server')
data = client_socket.recv(1024)
print('Reçu', repr(data))
Exécutez ces deux fichiers en même temps et cliquez sur "Split Terminal" pour le faire. Les informations suivantes devraient s'afficher sur votre terminal :
labex:project/ $ python server.py
Connecté par ('127.0.0.1', 40082)
labex:project/ $ python client.py
Reçu b'Hello, server'
Amélioration de la sérialisation des données pour la communication
Dans cette étape, nous allons améliorer la communication entre le client et le serveur en sérialisant et désérialisant les données pour la transmission.
- Modifiez le code
server.pypour inclure la sérialisation et la désérialisation des données.
## server.py
import socket
import pickle
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('127.0.0.1', 8888))
server_socket.listen(1)
connection, address = server_socket.accept()
with connection:
print('Connecté par', address)
while True:
data = connection.recv(1024)
if not data:
break
deserialized_data = pickle.loads(data)
processed_data = deserialized_data.upper()
connection.sendall(processed_data.encode())
- Modifiez le code
client.pypour inclure la sérialisation et la désérialisation des données.
## client.py
import socket
import pickle
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(('127.0.0.1', 8888))
data_to_send = pickle.dumps('Hello, server')
client_socket.sendall(data_to_send)
received_data = client_socket.recv(1024)
print('Reçu', received_data.decode())
Exécutez ces deux fichiers en même temps et cliquez sur "Split Terminal" pour le faire. Les informations suivantes devraient s'afficher sur votre terminal :
labex:project/ $ python server.py
Connecté par ('127.0.0.1', 40082)
labex:project/ $ python client.py
Reçu HELLO, SERVER
Résumé
Dans ce laboratoire, nous sommes plongés dans le monde enchanté de la programmation socket en Python, en tirant inspiration de l'ambiance magique du carnaval et des créations de l'artiste de ballons fantastique. En vous guidant à travers les étapes de création de connexions client-serveur, d'amélioration de la communication avec la sérialisation de données et bien d'autres, notre objectif était de vous offrir une expérience immersive et éducative, vous permettant de maîtriser l'art de la programmation socket et de vous émerveiller devant les merveilleuses connexions qu'elle peut tisser.



