我一直在尝试编写一个 python 脚本来启动一个线程来侦听套接字并将 HTTP 数据发送到另一个应用程序以由同一程序启动。在执行应用程序之前,需要运行套接字服务器。但是,运行套接字服务器的线程会阻止程序的进一步执行,并冻结它正在侦听的位置。放一些虚拟代码。
在模块 1 中:
def runServer(Port, Host, q):
HTTPServerObj = HTTPServer((Host, Port), RequestHandler)
HTTPServerObj.handle_request()
HTTPServerObj.server_close()
q.put((True, {'messageDoNotDuplicate': 'Data sent successfully by the server'}))
class SpoofHTTPServer(object):
def runServerThread(self):
q = Queue.Queue()
serverThread=Thread(target=runServer, args=(self.Port, self.Host, q))
serverThread.daemon=True
serverThread.start()
result = q.get()
print result
return result
在模块 2 中:
from module1 import SpoofHTTPServer
spoofHTTPServer = SpoofHTTPServer()
result = spoofHTTPServer.runServerThread()
rc = myApp.start()
myApp.start() 永远不会被执行,因为线程正在阻塞它。