使用 python HTTPServer 处理请求数

Serving number of requests using python HTTPServer

我只想使用 python HTTPServer 处理有限数量的请求。

这里有一些关于我的架构的事情: 我有一个客户端去服务器并请求数据。 服务器 (pythonic HTTPServer) 有一个包含数据的列表。 每次客户端请求数据时,它都会获得列表中的下一项。 我希望服务器在发送完列表中的所有数据后停止。 我考虑过的解决方案是检查列表中的数据数量并仅提供此次数。 我必须注意只有一个客户端,因为我出于测试目的这样做。

如何实施? 我考虑过在发送所有命令时引发一个事件,这样一些线程会终止服务器,但也许您有更简单的方法。

提前致谢

所以你可能想参考这个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为空时,此服务器将终止。