commit dc3cbbd128bd38bd6316a0659f71fdaf921f780f Author: barraux.a Date: Wed May 24 11:05:16 2023 +0200 first commit diff --git a/Connexion.py b/Connexion.py new file mode 100644 index 0000000..89363a3 --- /dev/null +++ b/Connexion.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- + +import socket + +IP_SERVEUR = '127.0.0.1' +PORT = 42000 + + +class Connexion(): + def __init__(self, sens): + """Si `sens` == "serveur" ouvre une connexion côté serveur, + sinon ouvre une connexion côté client.""" + mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + if sens == "serveur": + mySocket.bind((IP_SERVEUR, PORT)) + print(f"Serveur({IP_SERVEUR}:{PORT}) prêt. Attend un client...") + mySocket.listen() + self.connexion, adresse = mySocket.accept() + print(f"Connecté avec le client({adresse}).") + else: + print(f"Connexion au serveur({IP_SERVEUR}:{PORT})...") + mySocket.connect((IP_SERVEUR, PORT)) + print("Connexion établie avec le serveur") + self.connexion = mySocket + + def send(self, message): + """Envoie le message, et l'affiche.""" + print(f"Envoi de <{message}>.") + self.connexion.send(message) + + def recv(self): + """Reçoit un message d'au plus 1024 octets, l'affiche et le renvoie. + Attention, la réception est bloquante : tant qu'il n'y a pas de message + à recevoir, le programme attend.""" + message = self.connexion.recv(1024) + print(f"Reçu <{message}>.") + return message + + def close(self): + """Ferme la connexion.""" + print("Fermeture de la connexion.") + self.connexion.close() diff --git a/Interface.py b/Interface.py new file mode 100644 index 0000000..797b6a3 --- /dev/null +++ b/Interface.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- + +from Connexion import Connexion +import tkinter as tk + + +class Interface(tk.Tk): + """interface graphique pour envoyer/recevoir/chiffrer/dechiffrer""" + def __init__(self, sens): + tk.Tk.__init__(self) + self.connexion = Connexion(sens) + self.title(sens) + self.entree = tk.StringVar() + tk.Entry(self, textvariable=self.entree, width=30).pack() + tk.Label(text="Message reçu : ").pack() + self.message = tk.StringVar() + tk.Label(textvariable=self.message).pack() + self.sendButton = tk.Button(self, text="Send", command=self.send) + self.sendButton.pack() + self.recvButton = tk.Button(self, text="Receive", command=self.receive) + self.recvButton.pack() + + def send(self): + """Envoie le message chiffré.""" + message = self.entree.get().encode("utf8") + # à compléter pour chiffrer le message + self.connexion.send(message) + + def receive(self): + """Réceptionne un message depuis le serveur et l'affiche. + Attention : bloque tant que le serveur n'envoie rien.""" + message = self.connexion.recv() + # à compléter pour déchiffrer le message + self.message.set(message.decode("utf8")) + + def destroy(self): + self.connexion.close() + tk.Tk.destroy(self) diff --git a/InterfaceClient.py b/InterfaceClient.py new file mode 100644 index 0000000..cf14ec0 --- /dev/null +++ b/InterfaceClient.py @@ -0,0 +1,14 @@ +# -*- coding: utf-8 -*- + +import tkinter as tk +from Interface import Interface + + +class InterfaceClient(Interface): + def __init__(self): + Interface.__init__(self, "client") + # à compléter + + +It = InterfaceClient() +It.mainloop() diff --git a/InterfaceServeur.py b/InterfaceServeur.py new file mode 100644 index 0000000..217ad92 --- /dev/null +++ b/InterfaceServeur.py @@ -0,0 +1,17 @@ +# -*- coding: utf-8 -*- + +import tkinter as tk +from Interface import Interface + + +class InterfaceServeur(Interface): + def __init__(self): + Interface.__init__(self, "serveur") + self.n = 870567544966633301 + self.e = 42205 + self.d = 769020235650503533 + # à compléter + + +It = InterfaceServeur() +It.mainloop() diff --git a/simulHTTPS.pdf b/simulHTTPS.pdf new file mode 100644 index 0000000..419225b Binary files /dev/null and b/simulHTTPS.pdf differ