使用python HTTPServer的服务请求数

问题描述:

我想只使用python HTTPServer提供有限数量的请求。使用python HTTPServer的服务请求数

下面是关于我的体系结构的一些事情: 我有一个客户端去服务器并请求数据。 服务器(pythonic HTTPServer)有一个包含数据的列表。 客户端每次请求数据时,都会获取列表中的下一个项目。 我希望服务器在其列表中发送所有数据时停止。 我想过的解决方案是检查列表中的数据数量,并只提供这个次数。 我必须注意,只有一个客户端用于测试目的。

我该如何实现它? 我想过在发送所有命令时提出一个事件,所以某些线程会终止服务器,但也许你有一个更简单的方法。

在此先感谢

+1

每当客户端到达时,您的应用程序将提供该数据并将其从列表中删除(或存储在另一个列表中,取决于您的要求)。当服务列表长度为零时,服务器应该停止服务,并开始告诉客户端数据结束。 – cuongnv23

+0

我在测试中使用它,所以我想服务器安静地死亡 –

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

+0

谢谢,但是我想每次发送不同的响应根据mylist。 –