Un serveur TCP en Python¶
Structure du programme¶
Création d’une variable serveur pour gérer la communication TCP/IP
serveur = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
Mise en écoute sur le port 6789
serveur.bind(('', 6789)) serveur.listen(1)
Attente bloquante d’une connexion d’un nouveau client. Suite à cette instruction, la variable client permettra de gérer la communication avec le nouveau client, et la variable adresseClient contient son adresse IP.
client, adresseClient = serveur.accept()
Envoi d’une chaine de caractères vers le client
client.send('Hello')
Réception bloquante d’une chaine et stockage dans la variable donnees (1024 caractères maximum)
donnees = client.recv(1024)
Déconnexion et arrêt du serveur
client.close() serveur.close()
Exemple complet¶
import socket
ADRESSE = ''
PORT = 6789
serveur = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serveur.bind((ADRESSE, PORT))
serveur.listen(1)
client, adresseClient = serveur.accept()
print 'Connexion de ', adresseClient
donnees = client.recv(1024)
if not donnees:
print 'Erreur de reception.'
else:
print 'Reception de:' + donnees
reponse = donnees.upper()
print 'Envoi de :' + reponse
n = client.send(reponse)
if (n != len(reponse)):
print 'Erreur envoi.'
else:
print 'Envoi ok.'
print 'Fermeture de la connexion avec le client.'
client.close()
print 'Arret du serveur.'
serveur.close()
Ressources¶
Tutoriel sur la programmation sockets Python : http://docs.python.org/2/howto/sockets.html