Browse Source

ajout fichiers à compléter

master
corentin.bollet 6 months ago
parent
commit
3fddfa3d24
  1. 42
      Connexion.py
  2. 38
      Interface.py
  3. 14
      InterfaceClient.py
  4. 17
      InterfaceServeur.py

42
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()

38
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)

14
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()

17
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()
Loading…
Cancel
Save