Python中文
首页
教程
问答
标签
搜索
登录
注册
Python:如何关闭具有持久连接的线程化HTTP服务器(如何从另一个线程杀死readline()?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我将python2.6与<code>HTTPServer</code>和{<cd2>}一起使用,它们将在一个单独的线程中处理每个请求。我还使用HTTP1.1persistent connections('Connection:keep alive'),因此服务器或客户端都不会在请求后关闭连接。在</p> <p>下面是请求处理程序的大致情况</p> <pre><code>request, client_address = sock.accept() rfile = request.makefile('rb', rbufsize) wfile = request.makefile('wb', wbufsize) global server_stopping while not server_stopping: request_line = rfile.readline() # 'GET / HTTP/1.1' # etc - parse the full request, write to wfile with server response, etc wfile.close() rfile.close() request.close() </code></pre> <p>问题是如果我停止服务器,仍有一些线程在等待<code>rfile.readline()</code>。在</p> <p>我会在<code>readline()</code>上面放一个<code>select([rfile, closefile], [], [])</code>并在想关闭服务器时写入closefile,但我认为它在windows上不起作用,因为<code>select</code>只适用于套接字。在</p> <p>我的另一个想法是跟踪所有正在运行的请求和<code>rfile.close()</code>,但是我遇到了断管错误。在</p> <p>有什么想法?在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>如果在<code>HTTPServer</code>子类中将<code>daemon_threads</code>设置为true,则线程的活动不会阻止服务器退出。在</p> <pre><code>class ThreadedHTTPServer(ThreadingMixIn, HTTPServer): daemon_threads = True </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
我想从用户inpu创建一个类的实例
1 回答
我想从用户导入值,为此
5 回答
我想从用户那里得到一个整数输入,然后让for循环遍历该数字,然后调用一个函数多次
4 回答
我想从用户那里收到一个列表,并在其中执行一些步骤,然后在步骤完成后将其打印回来,但它没有按照我想要的方式工作
6 回答
我想从用户那里获取输入,并将值传递给(average=dict[x]/6),然后在那里获取resu
10 回答
我想从第一个列表中展示第一个词,然后从第二个列表中展示十个词,以此类推- Python
5 回答
我想从第一个空lin开始解析文本文件
9 回答
我想从简历、简历中提取特定部分
10 回答
我想从给定字典(python)的字符串中删除\u00a9、\u201d和类似的字符。
7 回答
我想从给定的网站Lin下载许多文件扩展名相同的Wget或Python文件
7 回答
我想从网上搜集一些关于抵押贷款的数据
6 回答
我想从网站上删除电子邮件地址
10 回答
我想从网站上读取数据该网站包含可下载的文件,然后我想用python脚本把它发送给oracle如何?
7 回答
我想从网站中提取数据,然后将其显示在我的网页上
6 回答
我想从网页上提取统计数据。
10 回答
我想从网页上解析首都城市,并在用户输入国家时在终端上打印它们
9 回答
我想从色彩图中删除前n个颜色,而不丢失原始颜色数
7 回答
我想从课堂上打印字典里的键
7 回答
我想从费用表中获取学生上次支付的费用,其中学生id=id
6 回答
我想从较低的顺序对多重列表进行排序,但我无法在一行中生成结果
1 回答