import socket
import gobject
import gtk
import time
import threading
PORT = 45454
def server():
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.bind(('', PORT))
sock.listen(1)
conn, addr = sock.accept()
while True:
data = conn.recv(1024)
if not data:
break
conn.send(data)
conn.close()
sock.close()
th = threading.Thread(target=server)
th.setDaemon(True)
th.start()
time.sleep(0.2)
class PyApp(gtk.Window):
def __init__(self):
gtk.Window.__init__(self)
self.connect("destroy", gtk.main_quit)
self.set_size_request(500, 500)
self.label = gtk.Label("")
self.add(self.label)
self.show_all()
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.sock.connect(('', PORT))
gobject.io_add_watch(self.sock, gobject.IO_IN, self.input_handler)
gobject.timeout_add(0, self.send_message)
def send_message(self):
self.sock.send("unko\n")
gobject.timeout_add(500, self.send_message)
def input_handler(self, source, condition):
data = self.sock.recv(1024)
self.label.set_text(self.label.get_text() + data)
return True
gtk.gdk.threads_init()
PyApp()
gtk.main()