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 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
| from tkinter import *
import socket
import os
from tkinter import filedialog, messagebox
def envoyer_donnees(identifiant, mot_de_passe):
try:
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect(('localhost', 9999)) # Remplacez par l'adresse de votre serveur
s.sendall(f"{identifiant}:{mot_de_passe}".encode('utf-8'))
reponse = s.recv(1024).decode('utf-8')
afficher_reponse(reponse)
if reponse.lower() == "oui":
ouvrir_fenetre_option()
except Exception as e:
print(f"Erreur de connexion: {e}")
def afficher_reponse(reponse):
label_reponse.config(text=reponse)
def collect_credentials():
identifiant = entry_identifiant.get()
mot_de_passe = entry_mot_de_passe.get()
envoyer_donnees(identifiant, mot_de_passe)
def ouvrir_fenetre_option():
fenetre_option = Toplevel(window)
fenetre_option.title("Options")
fenetre_option.geometry("300x200")
label_option = Label(fenetre_option, text="Choisissez une option:", font=("Arial", 12))
label_option.pack(pady=10)
bouton_telecharger = Button(fenetre_option, text="Télécharger un fichier", command=telecharger_fichier)
bouton_telecharger.pack(pady=5)
bouton_envoyer = Button(fenetre_option, text="Envoyer un fichier", command=envoyer_fichier)
bouton_envoyer.pack(pady=5)
def telecharger_fichier():
nom_fichier = entry_nom_fichier.get()
# Logique pour télécharger le fichier depuis le serveur
# Exemple: envoyer une requête au serveur pour télécharger le fichier
# Enregistrer le fichier sur le bureau
chemin_fichier = os.path.join(os.path.expanduser("~"), "Desktop", nom_fichier)
# Code pour recevoir le fichier et l'enregistrer
messagebox.showinfo("Téléchargement", f"Fichier {nom_fichier} téléchargé sur le bureau.")
def envoyer_fichier():
fichier = filedialog.askopenfilename()
if fichier:
# Logique pour envoyer le fichier au serveur
# Exemple: envoyer "upload" au serveur et le fichier
messagebox.showinfo("Envoi", f"Fichier {os.path.basename(fichier)} envoyé au serveur.")
# Création de la fenêtre principale
window = Tk()
window.title("Opera Server")
window.geometry("600x300")
window.minsize(600, 200)
window.iconbitmap("icone.ico")
window.config(background='Black')
# Ajout d'un label de bienvenue
texte = Label(window, text='Bienvenue Sur Opera Server', font=('Arial', 20), bg='Black', fg='Red', border='3')
texte.place(x=10, y=10)
# Champ pour l'identifiant
label_identifiant = Label(window, text="Identifiant:", font=("Arial", 12), bg='Black', fg='White')
label_identifiant.place(x=10, y=60)
entry_identifiant = Entry(window, font=("Arial", 12))
entry_identifiant.place(x=150, y=60)
# Champ pour le mot de passe
label_mot_de_passe = Label(window, text="Mot de passe:", font=("Arial", 12), bg='Black', fg='White')
label_mot_de_passe.place(x=10, y=100)
entry_mot_de_passe = Entry(window, font=("Arial", 12), show='*')
entry_mot_de_passe.place(x=150, y=100)
# Label pour afficher la réponse du serveur
label_reponse = Label(window, text="", font=("Arial", 12), bg='Black', fg='White')
label_reponse.place(x=10, y=180)
# Champ pour le nom du fichier à télécharger
label_nom_fichier = Label(window, text="Nom du fichier à télécharger:", font=("Arial", 12), bg='Black', fg='White')
label_nom_fichier.place(x=10, y=220)
entry_nom_fichier = Entry(window, font=("Arial", 12))
entry_nom_fichier.place(x=250, y=220)
# Bouton pour envoyer les informations
bouton_envoyer = Button(window, text="Envoyer", font=("Arial", 10), bg='Black', fg='Red', border='10', command=collect_credentials)
bouton_envoyer.place(x=150, y=140)
# Lancement de la boucle principale
window.mainloop() |
Partager