Insertion de mini cryptage pour un chat utilisant les Threads
Bonjour à tous! Je vous remercie déjà de passer sur ce topic et de le lire.
Je suis en dernière année de lycée en sciences informatiques à Saint Jean Berchmans (là ou à enseigné Gérard Swinnen).
Et j'ai un TFE en programmation à réaliser, mon prof est au courant que je demande de l'aide sur les forums, car il ne saurait pas trop m'aider car les Threads il ne connait pas trop O_O, disons que je suis un peu mal pour mon tfe.
J'ai pris le chat multi thread du livre Python de Gérard Swinnen et j'aimerais y insérer un mini cryptage, mais je n'arrive pas à transmettre la variable cryptée au thread de réception!
Voilà le client du chat :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| #!/usr/bin/env python
#-*-coding:Utf-8-*-
# Définition d'un client réseau gérant en parallèle l'émission
# et la réception des messages (utilisation de 2 THREADS).
ip = raw_input("Entrez le numéro du pc serveur : ")
HOST = "192.168.0.%s" % (ip)
port = 40000
import socket, sys, threading
# Classe permettant la gestion du thread s'occupant de la réception du message.
class ThreadReception(threading.Thread):
"""objet thread gérant la réception des messages"""
def __init__(self, conn):
threading.Thread.__init__(self)
self.connexion = conn # réf. du socket de connexion
def run(self):
while 1:
message_recu = self.connexion.recv(1024)
print "'" + message_recu + "'"
if message_recu =='' or message_recu.upper() == "FIN":
break
# Le thread <réception> se termine ici.
# On force la fermeture du thread <émission> :
th_E._Thread__stop()
print "Client arrêté. Connexion interrompue."
self.connexion.close()
# Classe permettant la gestion du thread s'occupant de l'émission du message.
class ThreadEmission(threading.Thread):
"""objet thread gérant l'émission des messages"""
def __init__(self, conn):
threading.Thread.__init__(self)
self.connexion = conn
# réf. du socket de connexion
def run(self):
while 1:
message_emis = raw_input()
self.connexion.send(message_emis)
# Établissement de la connexion :
connexion = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
connexion.connect((host, port))
except socket.error:
print "La connexion a échoué."
sys.exit()
print "Connexion établie avec le serveur BlackWater."
# Dialogue avec le serveur : on lance deux threads pour gérer
# indépendamment l'émission et la réception des messages :
th_E = ThreadEmission(connexion)
th_R = ThreadReception(connexion)
th_E.start()
th_R.start() |
Et voici le mini cryptage :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| #!/usr/bin/env python
# -*- coding: utf-8 -*-
chaine = raw_input("Donner la chaine à crypter : ")
dec = 26
crypt = ""
decrypt = ""
cpt = 0
while cpt < len(chaine):
crypt += chr(ord(chaine[cpt]) + dec)
cpt += 1
cpt2 = 0
while cpt2 < len(crypt):
decrypt += chr(ord(crypt[cpt2]) - dec)
cpt2 +=1
print "La chaine '%s' cryptée : '%s'." % (chaine, crypt)
print "La chaine cryptée : '%s', une fois décryptée donne : '%s'." % (crypt, decrypt) |
Une personne m'avait conseillé d'utiliser code() et decode(), mais je n'ai pas compris comment l'utiliser (et on a regardé avec mon prof cela, ne fonctionnait pas.)
Merci de votre aide!