gpt4 book ai didi

python - 在 python 中,如何让 UDPServer 自行关闭?

转载 作者:太空宇宙 更新时间:2023-11-03 11:35:21 24 4
gpt4 key购买 nike

我已经用声明为服务器创建了一个类:

class myServer(socketserver.BaseRequestHandler):  
def handle(self):
pass

并开始于:

someServer = socketserver.UDPServer((HOST, PORT), myServer)  
someServer.serve_forever()

我的问题是:如何让服务器自行关闭?我已经看到它有一个名为 BaseServer 的基类(属于基类),带有关闭方法。可以使用 someServer.shutdown()someServer 上调用它,但这是从服务器本身的外部调用的。

最佳答案

通过使用线程。由一个线程提供服务并在超时后通过另一个线程进行。考虑这个工作示例。为您的 UDPServer 修改它

import threading
import time
import SimpleHTTPServer
import SocketServer

PORT = 8000
Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
httpd = SocketServer.TCPServer(("", PORT), Handler)

def worker():

# minimal web server. serves files relative to the
print "serving at port", PORT
httpd.serve_forever()

def my_service():
time.sleep(3)
print "I am going down"
httpd.shutdown()

h = threading.Thread(name='httpd', target=worker)
t = threading.Thread(name='timer', target=my_service)

h.start()
t.start()

关于python - 在 python 中,如何让 UDPServer 自行关闭?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5178536/

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