# -*- coding: utf-8 -*- #python 27 #xiaodeng #CGI模块 #怎么自行搭建简单的web服务器 #用途: #内网中,提供文件的共享服务非常有用,在cmd下启动运行服务器命令之后,其他电脑也是可以通过url访问的 #可以实现pdf、zip等压缩文件、exe、apk等软件的下载服务. ###搭建基本流程## #1、假定共享文件的目录为:/home/test,ip为#192.168.1.101 ‘‘‘ 怎么查看本机IP? import socket myname = socket.getfqdn(socket.gethostname()) myaddr = socket.gethostbyname(myname) print myaddr ‘‘‘ #2、在cmd下运行下面的命令即可: #cd C:\home\test #c:\\python27\python -m SimpleHTTPServer #3、打开浏览器,http://localhost:端口号/路径来访问服务器资源 #如:访问http://192.168.1.101:8000;内网其他机器也可以通过服务器的IP地址来访问 #端口号,默认8000 #默认上面所定义的目录下有index.html文件,该文件为默认页面;如果没有该文件,会将目录以列表形式逐级显示出来 #4、注意事项: #内网中,文件传输非常方便,50MB/s不是梦。但是不支持并发,只能同事有一个同事进行下载,但是这里可以通过编写新的模块来达到支持并发的目的。 #http://www.wtoutiao.com/p/jffBpc.html #ForkStaticServer.py import socket import SocketServer import BaseHTTPServer from SimpleHTTPServer import SimpleHTTPRequestHandler class ForkingHTTPServer(SocketServer.ForkingTCPServer): allow_reuse_address = 1 def server_bind(self): """Override server_bind to store the server name.""" SocketServer.TCPServer.server_bind(self) host, port = self.socket.getsockname()[:2] self.server_name = socket.getfqdn(host) self.server_port = port def test(HandlerClass=SimpleHTTPRequestHandler,ServerClass=ForkingHTTPServer): BaseHTTPServer.test(HandlerClass, ServerClass) if __name__ == ‘__main__‘: test() #将上述代码保存为文件ForkStaticServer.py, #放到Python标准库的目录下(在我的电脑上是/usr/lib/python2.7/ForkStaticServer.py),以后用下面的命令代替前面所讲的命令, 这样搭建出来的静态文件服务器就是支持并发的! #自行搭建web服务器相关的库: import BaseHTTPServer import SimpleHTTPServer import CGIHTTPServer #import HTTPServer(python3中存在)
时间: 2024-10-25 21:46:25