Introduction à la programmation réseau Python
La programmation réseau implique l'écriture de logiciels qui communiquent sur un réseau. Python, avec son riche ensemble de bibliothèques, facilite le développement d'applications réseau. Cet article propose une introduction à la programmation réseau Python, couvrant les concepts de base et offrant des exemples pour vous aider à démarrer.
Configuration de l'environnement
Avant de vous lancer dans la programmation réseau, assurez-vous d'avoir installé Python. Vous aurez également besoin de la bibliothèque `socket`, qui est incluse dans la bibliothèque standard de Python, donc aucune installation supplémentaire n'est requise.
Comprendre les sockets
Un socket est un point de terminaison permettant d'envoyer ou de recevoir des données sur un réseau. La bibliothèque `socket` de Python fournit une interface pour la communication réseau à l'aide de sockets.
Créer un serveur TCP simple
Voici un exemple de serveur TCP de base qui écoute les connexions entrantes et les gère:
import socket
def start_server(host='localhost', port=12345):
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind((host, port))
server_socket.listen(1)
print(f'Server listening on {host}:{port}')
while True:
client_socket, address = server_socket.accept()
print(f'Connection from {address}')
client_socket.sendall(b'Hello, client!')
client_socket.close()
if __name__ == "__main__":
start_server()
Création d'un client TCP simple
Voici un exemple de client qui se connecte au serveur et reçoit un message:
import socket
def connect_to_server(host='localhost', port=12345):
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect((host, port))
message = client_socket.recv(1024)
print('Received:', message.decode())
client_socket.close()
if __name__ == "__main__":
connect_to_server()
Comprendre UDP
UDP (User Datagram Protocol) est un autre protocole utilisé pour la communication réseau. Contrairement à TCP, UDP ne garantit pas la livraison, la commande ou la vérification des erreurs. Voici un exemple de base de communication UDP:
Serveur UDP
import socket
def start_udp_server(host='localhost', port=12345):
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server_socket.bind((host, port))
print(f'UDP server listening on {host}:{port}')
while True:
message, address = server_socket.recvfrom(1024)
print(f'Received message from {address}: {message.decode()}')
server_socket.sendto(b'Hello, UDP client!', address)
if __name__ == "__main__":
start_udp_server()
Client UDP
import socket
def send_udp_message(host='localhost', port=12345):
client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
client_socket.sendto(b'Hello, UDP server!', (host, port))
message, _ = client_socket.recvfrom(1024)
print('Received:', message.decode())
client_socket.close()
if __name__ == "__main__":
send_udp_message()
Conclusion
La bibliothèque « socket » de Python fournit une base solide pour la programmation réseau, vous permettant de créer des applications TCP et UDP. En comprenant les opérations et les protocoles de base des sockets, vous pouvez créer une variété d'applications et de services en réseau. Continuez à explorer les capacités réseau de Python pour développer des solutions réseau plus sophistiquées et plus fiables.