Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import socket
- import argparse
- import json
- import sys
- import getpass
- def menuConnexion():
- print("""
- Menu de connexion
- 1. Se connecter
- 2. Creer un compte
- """)
- reponse = input("Que voulez-vous faire ? ")
- if reponse == "1":
- Login()
- #actionMenuConnexion(reponse)
- elif reponse == "2":
- Inscription()
- #actionMenuConnexion(reponse)
- else:
- print("Commande non reconnue. Veuillez entrer une commande valide.")
- menuConnexion()
- def menuPrincipal():
- print("""
- Menu principal
- 1. Envoi de courriels
- 2. Consultation de courriels
- 3. Statistiques
- 4. Quitter
- """)
- reponse = input("Que voulez-vous faire ? ")
- actionMenuPrincipal(reponse)
- def menuBoiteReception():
- print("Boite de reception : \n")
- def actionMenuPrincipal(reponse):
- # Envoi de courriel
- if reponse == "1":
- adresseDestination = input("adresse de destination : ")
- sujet = input("sujet du message : ")
- corpsMessage = input('corps du message : ')
- message = json.dumps({"adresseDestination": adresseDestination, "sujet": sujet, "corpsMessage": corpsMessage, "action" : "3" })
- SendMessage(message)
- reponseServeur = ReceiveMessage()
- print (reponseServeur)
- print("")
- input("Entrez sur une touche pour retourner au menu principal.")
- menuPrincipal()
- #Lecture courriels
- elif reponse == "2":
- message = json.dumps({"action" : "4"})
- SendMessage(message)
- repListeFichiers = ReceiveMessage()
- repListeFichiers = json.loads(repListeFichiers)
- lstMessages = repListeFichiers.get("Sujets")
- if not lstMessages:
- print ("Il ny a aucun message dans la boite de reception.")
- else:
- countmsg = 1
- for msg in lstMessages:
- print(countmsg.__str__() + " : " + msg)
- countmsg += 1
- msgToRead = input("Veuillez entrer le numero du message a lire : ")
- IdFichier = int(msgToRead)
- if(IdFichier > 0 and IdFichier <= len(lstMessages)):
- msgId = json.dumps({"Message" : IdFichier})
- SendMessage(msgId)
- ContenuMsg = ReceiveMessage()
- ContenuMsg = json.loads(ContenuMsg)
- strContenuMsg = ContenuMsg.get("Contenu")
- print("Contenu du message " + lstMessages[IdFichier - 1])
- print (strContenuMsg)
- print("")
- input("Entrez sur une touche pour retourner au menu principal.")
- menuPrincipal()
- # Statistiques
- elif reponse == "3":
- message = json.dumps({"action": "5"})
- SendMessage(message)
- repListeFichiers = ReceiveMessage()
- repListeFichiers = json.loads(repListeFichiers)
- NbMessages = repListeFichiers.get("NbMessages")
- lstMessages = repListeFichiers.get("Sujets")
- Size = repListeFichiers.get("Size")
- print ("")
- print("Nombre de messages : " + str(NbMessages))
- print("Taille de la boite de reception : " + Size + " bytes")
- print("")
- print("Fichiers dans la boite de messages : ")
- for msg in lstMessages:
- print(msg)
- print("")
- input("Entrez sur une touche pour retourner au menu principal.")
- menuPrincipal()
- elif reponse == "4":
- conn.close()
- sys.exit("A la prochaine !")
- else:
- print ("Commande non reconnue. Veuillez entrer une commande valide")
- menuPrincipal()
- def Login():
- userName = ''
- while userName == '':
- userName = input("Nom d'utilisateur : ")
- passWord = ''
- while passWord == '':
- #passWord = getpass.getpass('Mot de passe : ')
- passWord = input('Mot de passe : ')
- msg = json.dumps({"username": userName, "password": passWord, "action": "1"})
- SendMessage(msg)
- Reponse = ReceiveMessage()
- print(Reponse)
- if Reponse == ("Bienvenue : " + userName):
- menuPrincipal()
- else:
- menuConnexion()
- def Inscription():
- userName = ''
- while userName == '':
- userName = input("Nom d'utilisateur : ")
- passWord = ''
- while passWord == '':
- # passWord = getpass.getpass('Mot de passe : ')
- passWord = input('Mot de passe : ')
- msg = json.dumps({"username": userName, "password": passWord, "action": "2"})
- SendMessage(msg)
- Reponse = ReceiveMessage()
- print(Reponse)
- if Reponse == "Compte cree avec succes. : ":
- menuPrincipal()
- else:
- menuConnexion()
- def SendMessage(msg):
- conn.send(msg.encode())
- def ReceiveMessage():
- Reponse = conn.recv(1024).decode()
- return Reponse
- parser = argparse.ArgumentParser()
- parser.add_argument("-d", "--address", action="store", dest="address", default="localhost")
- parser.add_argument("-p", "--port", action="store", dest="port", type=int, default=15556)
- port = vars(parser.parse_args())["port"]
- address = vars(parser.parse_args())["address"]
- conn = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- conn.connect((address, port))
- menuConnexion()
Add Comment
Please, Sign In to add comment