Programmation Python/Programmer en deux minutes/une messagerie instantanée
Apparence
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