Python一行代码实现一个文件服务器
2018-01-15 15:06
886 查看
简述
Python有很多简单的工具库可用,其中有一个非常实用的工具库:SimpleHTTPServer
一行代码建立一个简单的python HTTP文件服务器
使用方法
$python -m SimpleHTTPServer Serving HTTP on 0.0.0.0 port 8000 ... # 访问地址 http://ip:8000 # 指定端口 $python -m SimpleHTTPServer 80 Serving HTTP on 0.0.0.0 port 80 ... http://ip:80[/code]
但是这个文件服务器是单线程的,意味着如果多个用户访问会被阻塞,同时只能一个用户访问优化
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()
将以上代码命名为MultiHTTPServer.py
放置到 python的lib库里面
lib库的位置如:/usr/lib/python/
或者用户的lib库
我的mac放置在
/Users/liruopeng/Library/Python/2.7/lib/python/site-packages使用方法
$python -m MultiHTTPServer.py Serving HTTP on 0.0.0.0 port 8000 ... # 访问地址 http://ip:8000 # 指定端口 $python -m MultiHTTPServer.py 80 Serving HTTP on 0.0.0.0 port 80 ... # 访问地址 http://ip:80[/code]
至此这个就可以支持处理多个用户访问了
相关文章推荐
- 00多行Python代码实现了一个FTP服务器
- Python代码实现:删除一个list里面的重复元素
- Python代码实现删除一个list里面的重复元素
- 只需一行代码,轻松实现一个在线编辑器
- 使用VC内嵌Python实现的一个代码检测工具
- 一行代码实现一个物体保持面向另一个物体(旋转) .
- python代码实现:如何反序的迭代一个序列?
- 仅用500行Python代码实现一个英文解析器的教程
- Python一行核心代码实现杨辉三角
- Python实现的一个找零钱的小程序代码分享
- 5行Python代码实现一个简单的在线英汉词典
- 使用VC内嵌Python实现的一个代码检测工具
- 使用70行Python代码实现一个递归下降解析器的教程
- Python实现的一个找零钱的小程序代码分享
- UNITY3D 一行代码实现一个物体保持面向另一个物体(旋转)
- 2.7 请写出一段Python代码实现删除一个list里面的重复元素
- Python 实现在对一个目录下所有文件,指定某一行之后添加内容(批处理脚本)
- 仅用50行代码实现一个Python编写的计算器的教程
- Python 一行代码实现5!+4!+3!+2!+1!
- 只需一行代码,轻松实现一个在线编辑器