我正在用Python制作一个基本的聊天客户端,但是它无法打开窗口。当服务器线程启动时,它似乎冻结了。我正在使用socketserver
模块。你知道吗
class ChatClient(Frame):
def CreateWidgets(self):
self.whoislist = Label(self,text = '')
def updateWhoIs(peopleList):
finishlist = 'People:'
for person in peopleList:
finishlist += ('\n' + person)
self.whoislist.config(text = finishlist)
self.whoislist.grid(row = 1, columnspan = 7)
self.mainchat = Text(self)
self.mainchat.grid(columnspan = 5, rowspan = 3, row = 2, column = 3)
peeps = []
def __init__(self,master = None):
Frame.__init__(self,master)
self.grid()
self.CreateWidgets()
print('Huh.')
self.server = socketserver.TCPServer(('127.0.0.1',1337),MyTCPHandler)
self.sthread = Thread(target = self.server.serve_forever())
self.sthread.start()
print('Yay')
在初始化线程时调用
self.server.serve_forever()
,将其返回值设置为线程的目标,但是顾名思义:它将永远存在。而是指定方法(不调用它)作为目标:而且它应该工作,尽管要小心
MyTCPHandler
如何与Tk应用程序交互,因为tkinter不是线程安全的。你知道吗相关问题 更多 >
编程相关推荐