gpt4 book ai didi

python - 如何停止 TCPServer,如何删除 TIME_WAIT 套接字

转载 作者:行者123 更新时间:2023-12-04 18:58:11 25 4
gpt4 key购买 nike

我写了我的两个类

class RequestHandler(http.server.SimpleHTTPRequestHandler):

class Server(socketserver.TCPServer):

这样一个独特的服务器就可以处理常规的浏览器、ajax 和 websocket 请求。
它工作正常。

我只是找不到终止服务器的方法。所以我杀死了这个过程。

[编辑] 当它收到来自浏览器的关闭请求时,我需要关闭服务器。我尝试设置 self.__shutdown_request没错,但它没有用。

此外,在我关闭浏览器并终止进程后,netstat 告诉我有一些套接字
仍然使用服务器的端口,处于 TIME_WAIT 状态。所以我必须等他们死了才能再次使用同一个端口。

如何终止服务器?

有没有办法去掉那些 socket ?

最佳答案

可能你可以试试Server.shutdown的方法关闭服务器。正如 Python 文档所解释的,这个方法告诉 Server.serve_forever循环停止并等待它停止。
顺便说一句,虽然您可以设置 SO_LINGER ON 以避免 TCP 套接字的 TIME_WAIT 状态,但不鼓励这样做。另一种方法是在绑定(bind)服务器端口之前设置 SO_REUSEADDR。

关于python - 如何停止 TCPServer,如何删除 TIME_WAIT 套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19378809/

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