Programmation Python/Programmer en deux minutes/une messagerie instantanée
Aller à la navigation
Aller à la recherche
Nous allons écrire deux scripts en Python et les exécuter chacun dans une console. Les deux programmes vont communiquer afin d'envoyer un message et d'attendre la réponse.
Écoute[modifier | modifier le wikicode]
1). Ouvrir un éditeur de texte, et coller le script suivant (sans caractère spéciaux comme "é")...
ecoute.py #!/usr/bin/python
# -*- coding: latin-1 -*-
import socket # importe un ensemble d'instructions pour connecter les programmes.
# Cet ensemble est disponible a l'installation de Python, dans la bibliotheque de base.
# Creation du connecteur d'ecoute par l'instruction 'socket'
# de la bibliotheque socket precedemment importee.
Connecteur = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
Hote = '127.0.0.1' # Adresse locale de l'ordinateur.
Port = 80 # Choix d'un port d'ecoute.
Connecteur.bind((Hote,Port)) # instruction 'bind' de la bibliotheque du connecteur
print "Le programme est a l'ecoute d'une eventuelle discussion, vous en serez averti." # Rajoutez des parentheses pour Python 3 !
Connecteur.listen(1) # ecoute...
client, adresse = Connecteur.accept() # accepte...
print "L'ordinateur",adresse," veut discuter ! J'attends son message." # Rajoutez des parentheses pour Python 3 !
# Creation du connecteur de reponse
Reponse = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
Portreponse = 234
Reponse.connect((Hote,Portreponse ))
print "Note : je me suis connecte a",adresse," pour lui repondre" # Rajoutez des parentheses pour Python 3 !
while 1:
Message = client.recv(255) # reception de la reponse, 255 caracteres max ; Python 3 : Message = str(client.recv(255),'mac_roman')
if not Message:
break
print "\nMessage : ",Message,"\a" + "\n\nVotre reponse :" # Rajoutez des parentheses pour Python 3 !
msgR = raw_input('>> ') # votre message ? Python 3 : msgR = bytes(input('>> '), 'mac_roman')
Reponse.send(msgR) # envoi.
client.close() # ferme la connexion lorsque le client est parti : [ctrl+C] pour abandonner l'execution du programme.
|
...enregistrez ce script (par exemple ecoute.py
) et exécutez-le.
Discussion[modifier | modifier le wikicode]
2. Ouvrir l'éditeur de texte, écrire le script de discussion...
discussion.py #!/usr/bin/python
# -*- coding: latin-1 -*-
import socket
Discuter = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
Hote = '127.0.0.1'
Port = 80
Port_de_reponse = 234
Discuter.connect((Hote,Port)) # Se connecte au programme ecoute.py
Reponse = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
Reponse.bind((Hote,Port_de_reponse))
Reponse.listen(1)
client, adresse = Reponse.accept() # Creation du connecteur pour la reponse de ecoute.py
print "L'adresse",adresse," vous a entendu et attend votre message." # Rajoutez des parentheses pour Python 3 !
while 1:
msg = raw_input('>> ') # votre message ? Python 3 : msg = bytes(input('>> '), 'mac_roman')
Discuter.send(msg) # envoi.
print "Attente de la reponse..." # Rajoutez des parentheses pour Python 3 !
reponseaumessage = client.recv(255) # reception de la reponse, 255 caracteres max ; Python 3 : reponseaumessage = str(client.recv(255),'mac_roman')
if not reponseaumessage:
break
print "\n",adresse,":",reponseaumessage,"\a\n" # affiche la reponse # Rajoutez des parentheses pour Python 3 !
client.close() # ferme la connexion lorsque le client quitte.
|
...enregistrez ce script (par exemple discussion.py
) et exécutez-le dans une nouvelle console.
Félicitation, vos deux consoles communiquent !
- Pour aller plus loin : Catégorie:Programmation.
- ... en deux minutes avec Python :
- une messagerie instantanée,
- un programme en interface avec Wikipédia,
- un serveur Web pour partager des fichiers et mettre en ligne un site statique en HTML.
- ... en deux minutes avec Python :
- Pour aller plus loin : Catégorie:Programmation.
- Voir aussi le livre : Programmer en deux minutes