Advertisement
JachyHm

PythonChatServeri

Oct 2nd, 2015
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.35 KB | None | 0 0
  1. import socket
  2. from threading import Thread
  3. from gi.repository import Gtk, GObject
  4. from msvcrt import getch
  5.  
  6.  
  7. class Connection():
  8.  
  9.     def __init__ (self):
  10.         self.serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  11.         self.serversocket.bind(('', 62803))
  12.         self.serversocket.listen(5)
  13.        
  14.        
  15.     def rec(self):
  16.         while True:
  17.             prijata_data=self.jachym.recv(1024)
  18.             Okno.prijem.set_text(prijata_data)
  19.     def listen(self):
  20.         (self.jachym, self.blLVA) = self.serversocket.accept()
  21.         self.r = Thread(target=self.rec)
  22.         self.r.start()
  23.        
  24.     def send(self,data):
  25.         self.jachym.sendall(bytes(data,'ASCII'))
  26.        
  27. prijata_data=""
  28. c = Connection()
  29. c.listen()
  30. class Okno(Gtk.Window):
  31.     def __init__(self):
  32.         #Definuje funkci __start__
  33.         Gtk.Window.__init__(self, title="Instant messaging (server)")
  34.         #Vytvoří okno "Ahoj světe po síti"
  35.         self.set_size_request(300, 100)
  36.         #Definuje velikost 300 na 100 px
  37.  
  38.         vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=6)
  39.         self.add(vbox)
  40.         #Vytvoří TextBox
  41.  
  42.  
  43.        
  44.         self.prijem = Gtk.Entry()
  45.         self.prijem.set_text("Zde se budou zobrazovat přijaté zprávy")
  46.         self.prijem.progress_pulse()
  47.         vbox.pack_start(self.prijem, True, True, 1)
  48.        
  49.         self.entry = Gtk.Entry()
  50.         self.entry.set_text("Sem zadejte zprávu")
  51.         self.entry.progress_pulse()
  52.         vbox.pack_start(self.entry, True, True, 1)
  53.        
  54.         button = Gtk.Button.new_with_label("Odešli")
  55.         button.connect("clicked", self.odesli)
  56.         vbox.pack_start(button, True, True, 0)
  57.  
  58.         button = Gtk.Button.new_with_label("Zavři")
  59.         button.connect("clicked", self.konec)
  60.         vbox.pack_start(button, True, True, 0)
  61.        
  62.         self.zprava=""
  63.         #Definuje proměnou ip s hodnotou:
  64.  
  65.     def odesli(self, button):
  66.         zprava=self.entry.get_text()
  67.         c.send(zprava)
  68.         self.entry.set_text("")
  69.        
  70.        
  71.         #Definuje funkcii "odesli_zmack" navázanou na "pripoj_cudlo"
  72.         #Zapíše do promměnné "ip" hodnotu z pole "ip_vstup"
  73.  
  74.     def konec(self, button):
  75.         Gtk.main_quit()
  76.  
  77.  
  78. win = Okno()
  79. win.connect("delete-event", Gtk.main_quit)
  80. win.show_all()
  81. Gtk.main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement