Types de données en Python - LMPT
Types de données en Python - LMPT
Types de données en Python - LMPT
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Programmation réseau <strong>en</strong> python<br />
On est sur le principe cli<strong>en</strong>t /serveur : le cli<strong>en</strong>t se connecte sur un serveur déterminé par son<br />
nom ou son adresse IP, sur un port précisé. L’objet fondam<strong>en</strong>tal est un socket, qui est une<br />
brique logicielle se mettant <strong>en</strong> écoute <strong>de</strong>rrière un port, et pouvant égalem<strong>en</strong>t transmettre <strong>de</strong>s<br />
données sur ce port.<br />
Coté cli<strong>en</strong>t :<br />
On débute par instancier un objet <strong>de</strong> type socket et le connecter sur le serveur :<br />
# cli<strong>en</strong>t basique<br />
import socket<br />
HOST = ’10.68.5.171’<br />
PORT = 5000<br />
cli<strong>en</strong>tsock = socket.socket(socket.AF_ INET, socket.SOCK_ STREAM)<br />
cli<strong>en</strong>tsock.connect((HOST,PORT))<br />
A partir <strong>de</strong> là, le cli<strong>en</strong>t peut soit recevoir, soit émettre <strong>de</strong>s données à travers le socket cli<strong>en</strong>tsock.<br />
Mais pour cela, il faut avant avoir mis, coté serveur, un soscket <strong>en</strong> écoute, sur le port adapté et<br />
on accepte les connexions <strong>en</strong>trantes.<br />
Coté serveur :<br />
# serveur basique<br />
import socket<br />
HOST = ”<br />
PORT = 5000<br />
serversock = socket.socket(socket.AF_ INET, socket.SOCK_ STREAM)<br />
serversock.bind((HOST,PORT))<br />
serversock.list<strong>en</strong>(1)<br />
(cli<strong>en</strong>tsock, address) = serversock.accept()<br />
Le tuple (cli<strong>en</strong>tsock, address) conti<strong>en</strong>t d’une part un objet servant <strong>de</strong> référ<strong>en</strong>ce vers le socket<br />
cli<strong>en</strong>t qui s’est connecté au serveur, et d’autre part un tableau adress cont<strong>en</strong>ant l’adresse<br />
IP et le port utilisé par le cli<strong>en</strong>t pour se connecter.<br />
Coté serveur aussi, on peut <strong>en</strong>voyer ou récupérer <strong>de</strong>s données transitant par le socket serversock.<br />
Une fois la tranmission faite, il ne faut pas oublier <strong>de</strong> fermer les sockets, sans quoi le port utilisé<br />
ne sera plus disponible. On réalise cela à l’ai<strong>de</strong> <strong>de</strong> la métho<strong>de</strong> close() :<br />
# cote cli<strong>en</strong>t :<br />
cli<strong>en</strong>tsock.close()<br />
# cote serveur :<br />
serversock.close()