锘??xml version="1.0" encoding="utf-8" standalone="yes"?>日韩亚洲国产综合久久久,中文字幕亚洲综合久久菠萝蜜,久久91精品综合国产首页http://m.shnenglu.com/socketref/category/463.htmlgis,mouse,luolasizh-cnWed, 14 May 2014 10:52:42 GMTWed, 14 May 2014 10:52:42 GMT60tkInter濡備綍涓巊event鍗忎綔http://m.shnenglu.com/socketref/archive/2014/05/04/206815.html鏀懼眮闃跨嫍 鏀懼眮闃跨嫍 Sun, 04 May 2014 08:59:00 GMThttp://m.shnenglu.com/socketref/archive/2014/05/04/206815.htmlhttp://m.shnenglu.com/socketref/comments/206815.htmlhttp://m.shnenglu.com/socketref/archive/2014/05/04/206815.html#Feedback0http://m.shnenglu.com/socketref/comments/commentRss/206815.htmlhttp://m.shnenglu.com/socketref/services/trackbacks/206815.html鐬呭埌涓孌典唬鐮侊紝榪呴熸敹钘?br />


 1 import gevent
 2 from gevent import socket
 3 import Tkinter as tk
 4 
 5 class SockLoop(object):
 6     def __init__(self, callback):
 7         self.callback = callback
 8 
 9     def __call__(self, sock, client):
10         while 1:
11             mes = sock.recv(256)
12             ret = self.callback(client, mes)
13             if ret is not None:
14                 sock.send(ret)
15 
16 def socket_server(port, callback):
17     ssock = socket.socket(socket.AF_INET, socket.SOCK_STREAM, socket.IPPROTO_TCP)
18     ssock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
19     ssock.bind(('', port))
20     ssock.listen(5)
21 
22     while 1:
23         sock, client = ssock.accept()
24         gevent.spawn(callback, sock, client)
25 
26 class App(object):
27     def __init__(self, root):
28         self.greenlet = None
29         self.root = root
30         self._build_window(root)
31         self.root.after(100, self._connect)
32 
33     def add_text(self, text):
34         cleaned_string = text.replace('\r''')
35         self.text.insert(tk.END, cleaned_string)
36 
37     def quit(self):
38         self.root.quit()
39 
40     def _build_window(self, root):
41         self.frame = tk.Frame(root)
42         self.text = tk.Text(self.frame)
43         self.quit_button = tk.Button(self.frame, text="Quit", command=self.quit)
44         self.text.pack()
45         self.quit_button.pack()
46         self.frame.pack()
47 
48     def _connect(self):
49         self.greenlet = gevent.spawn(
50                 socket_server,
51                 8080,
52                 SockLoop(lambda cl, txt: self.add_text("%s: %s" % (cl, txt))))
53         self.gevent_loop_step()
54 
55     def gevent_loop_step(self):
56         gevent.sleep()
57         self.root.after_idle(self.gevent_loop_step)
58 
59 
60 if __name__ == '__main__':
61     root = tk.Tk()
62     app = App(root)
63     root.mainloop()


鏀懼眮闃跨嫍 2014-05-04 16:59 鍙戣〃璇勮
]]>
久久久精品人妻无码专区不卡| 一本一本久久a久久精品综合麻豆| 无码国内精品久久人妻蜜桃 | 狠狠干狠狠久久| 国产成人无码精品久久久免费| 亚洲精品无码久久久| AV无码久久久久不卡网站下载| 久久精品国产亚洲AV不卡| 精品久久久久久亚洲精品 | 久久w5ww成w人免费| 国产精品无码久久综合网| 人妻精品久久久久中文字幕一冢本| 色综合久久中文综合网| 色欲久久久天天天综合网| 久久久久无码专区亚洲av| 99久久综合狠狠综合久久止| 99精品久久久久久久婷婷| 久久se这里只有精品| 99久久99久久精品免费看蜜桃| 久久亚洲AV成人无码| 午夜福利91久久福利| 国产三级精品久久| 久久亚洲精品中文字幕三区| 久久久久久夜精品精品免费啦| 香蕉久久永久视频| 亚洲国产香蕉人人爽成AV片久久 | 无码伊人66久久大杳蕉网站谷歌 | 国产精品久久影院| 久久精品人人做人人爽97| 无码日韩人妻精品久久蜜桃 | 久久天天躁狠狠躁夜夜2020老熟妇| 狠狠色丁香久久综合婷婷| 97久久超碰国产精品2021| 久久无码人妻一区二区三区午夜| 一本一道久久综合狠狠老| 7777久久久国产精品消防器材| 久久人人爽人人爽人人av东京热| 久久AV高潮AV无码AV| 亚洲精品无码久久久久去q| 久久久久人妻一区二区三区vr| 久久精品国产99久久无毒不卡|