Outils pour utilisateurs

Outils du site


debuter_en_python:socket

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
debuter_en_python:socket [2026/10/13 18:19] – admindebuter_en_python:socket [2026/10/13 20:49] (Version actuelle) – [pour le client] admin
Ligne 5: Ligne 5:
 Voici un exemple simple en TCP : le client envoie un message et le serveur lui renvoie le même message. TCP établit une connexion entre les deux programmes. En Python, le serveur crée une socket, l’associe à une adresse avec bind(), attend une connexion avec listen() et accept() ; le client se connecte avec connect().  Voici un exemple simple en TCP : le client envoie un message et le serveur lui renvoie le même message. TCP établit une connexion entre les deux programmes. En Python, le serveur crée une socket, l’associe à une adresse avec bind(), attend une connexion avec listen() et accept() ; le client se connecte avec connect(). 
  
-**Pour le serveur**+====Pour le serveur====
  
 <code python fileserveur.py> <code python fileserveur.py>
Ligne 42: Ligne 42:
 </code> </code>
  
-**pour le client**+====pour le client====
  
 <code python fileclient.py> <code python fileclient.py>
Ligne 68: Ligne 68:
             if message.lower() == "quit":             if message.lower() == "quit":
                 break                 break
 +                
                                  
 </code> </code>
 +
 +Lance d’abord le serveur dans un terminal avec python3 serveur.py, puis le client dans un autre avec python3 client.py. Le client se connecte à 127.0.0.1 — la machine locale — sur le port 50007. sendall() envoie les données, et recv(1024) lit jusqu’à 1024 octets. Les données échangées sont des octets : ici, .encode() et .decode() servent à convertir entre texte et octets.
 +
 +Dans cet exemple, AF_INET indique IPv4 et SOCK_STREAM indique TCP. Une socket TCP est un flux d’octets : pour des échanges plus complexes, il faut définir un protocole pour savoir où chaque message commence et se termine.
 +
 +Pour un Serveur permanent, il faut placer accept() dans une boucle infinie. Ainsi, le serveur continue d’attendre des connexions, y compris après le départ d’un client. Voici une version qui garde aussi la connexion avec un client ouverte pour échanger plusieurs messages.
 +
 +Lance python3 fileserveur.py dans un terminal, puis python3 fileclient.py dans un autre terminal ou sur un autre pc . Le serveur continue de tourner après qu’un client a tapé "quit" et peut accepter un nouveau client. Avec cette version, il traite les clients l’un après l’autre : il attend que le client courant se déconnecte avant d’accepter le suivant. Arrête le serveur avec "Ctrl+C".
/home/chanteri/www/fablab37110/data/attic/debuter_en_python/socket.1791908342.txt.gz · Dernière modification : de admin