关闭浏览器后如何停止服务器

短91

我是python本地服务器的新手。我找到了一些脚本,可以帮助我通过python程序设置本地服务器。下面是我的修改后的代码,我从其他代码中调用此代码:

import sys
from SimpleHTTPServer import SimpleHTTPRequestHandler
import BaseHTTPServer
import webbrowser
def setup():
    HandlerClass = SimpleHTTPRequestHandler
    ServerClass  = BaseHTTPServer.HTTPServer
    Protocol = "HTTP/1.0"

    port = 8888 
    server_address = ('127.0.0.1', port)

    HandlerClass.protocol_version = Protocol
    httpd = ServerClass(server_address, HandlerClass)

    sa = httpd.socket.getsockname()
    print "Serving HTTP on", sa[0], "port", sa[1], "..."

    new = 2
    url = "127.0.0.1:8888/webVisual/tree_structure.html"
    webbrowser.open(url,new=new)

    httpd.serve_forever()

关于此代码有两个问题:

  1. 我尝试在真正的浏览器上浏览一个本地html文件,我注意到我只能在这之前放一段代码serve_forever()这是正确的方法吗?

  2. 当我尝试关闭浏览器时,我注意到该程序一直在运行,我认为这可能是由该serve_forever()功能引起的是对的吗?关闭浏览器后如何结束服务器?

FZ
  1. 如果在httpd.serve_forever之后编写webbrowser.open,则httpd.serve可能会阻止执行,并且永远不会执行webbrowser.open。这就是为什么您没有看到浏览器的原因。您可以在httpd之后放置一个打印件作为实验,但永远不要打印。

  2. webbrowser.open以不同于httpd的进程启动浏览器。

因此,当您关闭Web浏览器时,httpd.serve_forever()不会发生任何事情。顾名思义,httpd.serve_forever()将永久服务于http服务器,直到您通过ctrl + c或kill -9之类的脚本手动将其终止。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

关闭浏览器上的Go服务器

关闭浏览器后,Google应用脚本停止运行

如何通过浏览器以编程方式启动/停止Neo4j服务器?

在服务器关闭连接之前,浏览器不会响应服务器发送的事件

如果用户中止与服务器的连接(连接时刷新,关闭浏览器等),如何停止执行所有功能(多个异步等)。

使用服务器推送将文件推送到浏览器后,如何保存文件?

在Puppeteer Sharp中完成程序后如何停止关闭浏览器

关闭终端窗口后,Jetty服务器停止运行

关闭浏览器窗口后,如何防止Google Chrome浏览器删除会话Cookie?

进行摩卡测试后,如何关闭浏览器?

FormsAuthenticationTicket:关闭浏览器后如何保持用户登录?

关闭浏览器PHP后如何保持$ _GET值

关闭浏览器后如何退出调试模式?

关闭浏览器后如何注销应用程序?

关闭浏览器后如何清除本地存储?

关闭浏览器后如何删除或取消设置Cookie?

关闭浏览器后如何保留ngCookies?

如何在所有测试用例执行完后或使用带有Angularjs的Selenium服务器使用量角器关闭测试用例失败后如何关闭浏览器

关闭浏览器后令牌被冲走

Karma测试后关闭浏览器

关闭浏览器后保存变量

导航超时后关闭浏览器

关闭文件浏览器后出错

关闭网络服务器连接,浏览器行为

Firebase对用户进行身份验证后,如何从服务器端重定向浏览器

grunt-contrib-connect:当浏览器打开时,grunt服务器停止

当 nfs 服务器关闭时,如何让 linux 停止抱怨?

如果没有发送任何内容,为什么关闭浏览器后服务器上的php SSE文件仍然可以工作?

取消HttpRequest后,浏览器将挂起,直到服务器超时