zoukankan      html  css  js  c++  java
  • 最简单的临时web服务器

    前言

    有的时候需要做个单页的网页显示,这个直接用python启动即可,但是存在一个问题,停止进程以后,如果网页正在被访问,socket会不释放,然后再启动就会提示端口占用,实际上是没有端口占用的

    这个增加一个配置项就行

    相关代码

    #!/usr/bin/python3
    
    from __future__ import print_function
    
    import SimpleHTTPServer
    import SocketServer
    import os
    import sys
    import signal
    
    def quit(signal_num,frame):
        print("you stop the threading")
        sys.exit()
    
    
    path = os.path.dirname(sys.argv[0])
    
    os.chdir('/home/cephuse/output/')
    
    class ReusingTCPServer(SimpleHTTPServer.SimpleHTTPRequestHandler):
        allow_reuse_address = True
    
        def send_head(self):
            # horrible kludge because SimpleHTTPServer is buggy wrt
            # slash-redirecting of requests with query arguments, and will
            # redirect to /foo?q=bar/ -- wrong slash placement
            self.path = self.path.split('?', 1)[0]
            return SimpleHTTPServer.SimpleHTTPRequestHandler.send_head(self)
    
    
    SocketServer.TCPServer.allow_reuse_address = True
    httpd = SocketServer.TCPServer(
        ("", 9090),
        ReusingTCPServer,
        )
    try:
        print("Serving doc at port: http://localhost:9090")
        httpd.serve_forever()
    except KeyboardInterrupt:
        pass
    

    上面是参考的ceph doc的服务脚本,区别就是增加的那句

    SocketServer.TCPServer.allow_reuse_address = True
    
  • 相关阅读:
    腾讯与唯品会笔试面试经历
    JavaCodeTra 猴子选猴王 约瑟夫循环
    HBase开发错误记录(一):java.net.UnknownHostException: unknown host: master
    fedora
    Qt5.1 静态编译
    Linux/Ubuntu下 静态编译Qt程序
    地铁车型
    交流屏和直流屏的区别
    不间断电源(UPS)
    一级负荷供电
  • 原文地址:https://www.cnblogs.com/zphj1987/p/14152575.html
Copyright © 2011-2022 走看看