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 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
| # -*- coding: cp1252 -*-
# python version 2.7.8
import socket,sys,ctypes,pygame,time
from Tkinter import *
from threading import Thread
#DIMENSIONS DE L'ECRAN
SM_CXSCREEN = 0
SM_CYSCREEN = 1
largeurScreen = ctypes.windll.user32.GetSystemMetrics(SM_CXSCREEN)
hauteurScreen = ctypes.windll.user32.GetSystemMetrics(SM_CYSCREEN)
largeurMain=240
hauteurMain=hauteurScreen
#SERVEUR
HOST = '192.168.0.12'
PORT = 6027
mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
mySocket.bind((HOST, PORT))
except socket.error:
print "La liaison du socket à l'adresse choisie a échoué."
sys.exit()
#VARIABLES GLOBALES
#CLASSES
#thread serveur
class Serveur(Thread):
"""Thread chargé de se connecter au client"""
def __init__(self):
Thread.__init__(self)
def run(self):
while 1:
#Attente de la requête de connexion d'un client :
print "Serveur prêt, en attente de la connexion du client..."
mySocket.listen(5)
#Etablissement de la connexion :
connexion, adresse = mySocket.accept()
print "Client connecté, adresse IP %s, port %s" % (adresse[0], adresse[1])
texte.set("Client connecté")
thread_time.start()
#Dialogue avec le client :
connexion.send("Vous êtes connecté au serveur")
msgServeur=raw_input("fin?")
if msgServeur.upper()=="FIN" or msgServeur.upper()=="":
thread_time.stopthread()
texte.set("Client déconnecté")
break
connexion.close()
sys.exit()
#thread durée
class Duree(Thread):
"""Thread chargé d'afficher le temps écoulé"""
def __init__(self):
Thread.__init__(self)
self.arret=False
def run(self):
try:
while 1:
raw_time=time.clock()
s=int(raw_time)
h=0
m=0
if s >= 60:
m = s//60
s -= m*60
if m >= 60:
h = m//60
m -= h*60
temps.set(str(h)+' h '+str(m)+' m '+str(s)+' s')
if self.arret==True:
raise
except:
print "Arrêt du thread Durée Serveur"
def stopthread(self):
self.arret=True
#DEFINITIONS
def quitter():
print "quitter"
#PROGRAMME PRINCIPAL
Mafenetre=Tk()
Mafenetre.title("Collaborative Tool")
texte=StringVar()
temps=StringVar()
#Mafenetre.configure(bg="white")
Mafenetre.geometry('%dx%d+%d+%d' % (largeurMain,hauteurMain,largeurScreen-253,0))
thread_serveur=Serveur()
thread_time=Duree()
thread_serveur.start()
LabelTime=Label(Mafenetre,textvariable=temps)
LabelTime.pack()
LabelServeur=Label(Mafenetre,textvariable=texte)
LabelServeur.pack()
BoutonQuitter = Button(Mafenetre, text ='Quitter', command = quitter)
BoutonQuitter.pack(side = LEFT, padx = 5, pady = 5)
Mafenetre.mainloop() |
Partager