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
|
import pygtk
pygtk.require('2.0')
import gtk,threading,socket
class Treception(threading.Thread):
def __init__(self,lesocket,maitre):
threading.Thread.__init__(self)
self.socket = lesocket
self.maitre = maitre
def run(self):
print 'debut de run'
message = "bla"
while 1:
message = self.socket.recv(1024)
print 'message recu'
if message=='quit':
pass
else:
print message+"\n"
self.maitre.Tbuffer.insert(self.maitre.Tbuffer.get_end_iter(),"lui>"+message+"\n")
class chat:
def hello(self,widget,argument=None):
self.Tbuffer.insert(self.Tbuffer.get_end_iter(),"toi>"+self.message.get_text()+"\n")
self.lesocket.send(self.message.get_text())
self.message.set_text('')
def quitter(self,widget, argument = None):
gtk.main_quit()
def __init__(self,port,adress):
self.creerinterface()
self.creersocket(adress,port)
def creersocket(self,adress,port):
self.lesocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
self.lesocket.connect((adress,port))
def creerinterface(self):
self.fenetre = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.fenetre.connect('destroy',self.quitter)
self.fenetre.resize(600,400)
self.text = gtk.TextView()
self.text.set_editable(False)
self.message = gtk.Entry()
self.Tbuffer = gtk.TextBuffer()
self.text.set_buffer(self.Tbuffer)
self.scroll = gtk.ScrolledWindow()
self.scroll.add(self.text)
self.scroll.show()
self.bouton = gtk.Button("cliquez-moi")
self.bouton.connect('clicked',self.hello,None)
self.boitePrincipale = gtk.VBox(False,5)
self.boitePrincipale.pack_start(self.scroll)
self.boiteSecondaire = gtk.HBox(False,5)
self.boiteSecondaire.pack_start(self.message)
self.boiteSecondaire.pack_start(self.bouton,expand=False)
self.boitePrincipale.pack_start(self.boiteSecondaire, expand = False)
self.fenetre.add(self.boitePrincipale)
self.boitePrincipale.show()
self.boiteSecondaire.show()
self.message.show()
self.text.show()
self.bouton.show()
self.fenetre.show()
def lancer(self):
gtk.main()
def get_socket(self):
return self.lesocket
program = chat(1103,'127.0.0.1')
reception = Treception(program.get_socket(),program)
reception.start()
program.lancer() |
Partager