gpt4 book ai didi

python - 如何停止TCP服务器

转载 作者:行者123 更新时间:2023-11-30 22:22:02 25 4
gpt4 key购买 nike

在每三次迭代中,TCPServer 都需要启动然后立即停止。这三次都需要在端口 8000 上启动。

正如下面代码中所定义的,TCPServer 启动。但它仅在第一次迭代期间开始。另外两次迭代无法启动 TCPServer,因为端口 8000 已被先前(第一次)迭代中启动的 TCPServer 使用。为了确保端口 8000 可用,需要关闭之前启动的 TCP 服务器。

如何终止(停止)已经运行的 TCPServer?

import SimpleHTTPServer
import SocketServer


def startServer():
Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
Handler.extensions_map.update({'.webapp': 'application/x-web-app-manifest+json', })
try:
httpd = SocketServer.TCPServer(("", 8000), Handler)
httpd.serve_forever()
print('httpd server has been successfully started ')
except Exception, e:
print(e)


for i in range(3):
startServer()

最佳答案

使用 shutdown() 告诉 serve_forever() 循环停止并等待,直到它停止。 2.6 版本中的新功能。 docs.python.org/2/library/socketserver.html

对于您的代码来说,它应该如此简单

    httpd.serve_forever()
print('httpd server has been successfully started ')
httpd.shutdown()
httpd.server_close()
print('httpd server has been successfully stopped')

我将把它留给OP,以便更好地使用这个和链接页面底部的示例来适本地满足所需的要求。

关于python - 如何停止TCP服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48450053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com