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.py pour 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.py pour 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