我是Python的新手,并且正在从事我的本科项目。 最近,我已经用 socketserver 在Python中成功实现了一个始终运行的TCP服务器。该服务器可以永远运行,并等待来自cli的请求。下面是我的代码:
import SocketServer
class MyTCPHandler(SocketServer.BaseRequestHandler):
def handle(self):
# self.request is the TCP socket connected to the client
self.data = self.request.recv(1024).strip()
print "{} wrote:".format(self.client_address[0])
print self.data
# just send back the same data, but upper-cased
self.request.sendall(self.data.upper()
#start the TCP server and keep it run forever until click stop button
server = SocketServer.TCPServer((HOST, PORT), MyTCPHandler)
server.serve_forever()
Rightnow,我开始使用GUI(即Tkinter)创建对话框板。我创建了一个对话框,上面有一个确定按钮。我只想在用户单击“确定”按钮时启动始终运行的TCP服务器。下面是我的对话框代码:
import tkinter
master = tkinter.Tk()
e = tkinter.Entry(master)
e.pack()
e.focus_set()
def callback():
print (e.get()) # This is the text you may want to use later
master.destroy()
b = tkinter.Button(master, text ="OK", width = 10, command = callback)
b.pack()
tkinter.mainloop()
我试图将启动服务器代码(如下)放入按钮的 Callback 函数中,但是服务器只能运行一次,然后才能执行。
#start the TCP server and keep it run forever until click stop button
server = SocketServer.TCPServer((HOST, PORT), MyTCPHandler)
server.serve_forever()
任何人都可以帮助我,如何在单击按钮后启动服务器并使服务器永久运行?
非常感谢您