Python HTTPServer serve_forever控制台输入

时间:2017-10-16 07:20:08

标签: python python-3.x http

我在Python3中编写了一个非常简单的应用程序,它只是通过Python http.server.BaseHTTPRequestHandler,HTTPServer模块从POST输入运行某些服务器端命令。

目前,我的代码如下:

mysql_tools.f_print("Starting HTTP server on %s:%s.." % SERVER_ADDRESS)
httpd = HTTPServer(SERVER_ADDRESS, S)
mysql_tools.f_print("Server started. Now serving port %s." % SERVER_ADDRESS[1])
httpd.serve_forever()

其中S是BaseHTTPRequestHandler类。

现在,我希望能够拥有控制台输入。应用程序在CMD窗口中运行,只显示"服务器已启动。现在服务端口1010"但是我希望能够键入,例如," stop"进入CMD窗口并相应地处理,或者重新启动"或者" forcerequest"等等。但是你可能知道,由于" serve_forever()"它没有任何输入,它忽略了任何未来的代码行,因为它似乎无限循环。
任何建议或替代方式为港口提供服务都会受到批评。

1 个答案:

答案 0 :(得分:1)

AFAIK,没有办法,至少不是那个窗口,(它不是由于 serve_forever ),任何服务器都会这样做,它只是在听SIGTERM( CTRL + C shutdown())。