我想使用python HTTPServer只提供有限数量的请求。
以下是我的架构的一些内容: 我有一个客户端进入服务器并要求数据。 服务器(pythonic HTTPServer)有一个包含数据的列表。 每次客户端请求数据时,它都会获取列表中的下一个项目。 我希望服务器在其列表中发送所有数据时停止。 我所考虑的解决方案是检查列表中的数据数量并仅服务这么多次。 我必须注意,我只有一个客户端用于测试目的。
我该如何实施? 我想在发送所有命令时引发一个事件,这样一些线程会杀死服务器,但也许你有一个更简单的方法。
提前致谢
答案 0 :(得分:1)
所以你可能想要参考这个https://docs.python.org/2/library/basehttpserver.html#more-examples
您必须定义自己的keep_running()
条件。以下是我的样本:
import BaseHTTPServer
httpd = BaseHTTPServer.HTTPServer(('', 8000), BaseHTTPServer.BaseHTTPRequestHandler)
mylist = range(10)
while mylist:
httpd.handle_request()
mylist.pop() # remove last item of `mylist`
运行此代码时,它将侦听端口8000
。您对localhost:8000
发出的每个请求都会从mylist
中删除一个项目。当mylist
为空时,此服务器将被终止。