问题
如何在同一个脚本中同时运行Tkintermainloop
和无限服务器循环?在
背景
我正在用Tkinter(Python 2.7.3)创建一个GUI服务器。到目前为止,GUI正常工作,服务器正常工作,但是我在整合这两者时遇到了问题。据我所知(如果我错了请纠正我),服务器需要在无限循环上运行才能接受新用户。遗憾的是,GUI还需要一个无限循环。我想知道如何让两个循环同时运行。在
我当前的mainloop函数如下所示(s
是套接字对象):
def mainloop(s):
while True:
channel, addr = s.accept()
print "Connected with", addr
这显然是保持服务器运行所必需的(我认为),但问题是,这个循环出现在我的mainloop
之前,因此我对此有问题。如果我换一种方式,服务器就永远不会打开。在
完整代码
谢谢!在
使用线程模块在新线程中打开服务器主循环。在
更换
与
^{pr2}$那你就可以打电话了根.mainloop()像你一样管理Tkinter。在
更新
根据A.Rodas下面的注释,最好使用与python3兼容的更新的
threading
模块。在所以你可以替换
与
您可能需要使用Twistedhttp://twistedmatrix.com/trac/
它将Tk-loop集成到它的reactor-loop(它负责网络)http://twistedmatrix.com/documents/8.2.0/api/twisted.internet.tksupport.html,您可以轻松地构建协议。。。。在
在不同的线程中运行它们。有关详细信息,请参阅threading module documentation。在
相关问题 更多 >
编程相关推荐