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
    
  • 相关阅读:
    Java反射机制源码分析及知识点总结
    Dubbo admin 在Windows下的安装和服务发现
    Redis知识点总结
    Error:(xx) java: -source 1.5 中不支持
    Java中的线程间通信
    linux主机名显示bogon问题
    Linux(CentOS)上安装Apache Hadoop
    Java虚拟机(JVM)及其体系结构
    在微服务领域中处理分布式事务
    Redis持久化
  • 原文地址:https://www.cnblogs.com/zphj1987/p/14152575.html
Copyright © 2011-2022 走看看