python实现静态服务器


Posted in Python onSeptember 05, 2019

本文实例为大家分享了python静态服务器的具体代码,供大家参考,具体内容如下

#coding:utf-8
import socket
import multiprocessing
import re


HTML_ROOT_DIR = "./html"

class HTTPServer(object):

  #初始化
  def __init__(self):
    self.serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    self.serversocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)


  #开启服务器启动进程
  def start(self):
    self.serversocket.listen(128)
    while True:
      clintsocket, addree = self.serversocket.accept()
      hanlderprogess = multiprocessing.Process(target=self.xiexi, args=(clintsocket,))
      hanlderprogess.start()
      clintsocket.close()

  #绑定端口
  def bind(self,port):
    self.serversocket.bind(("", port))


  #获取请求头,进行解析,同时发送相应头
  def xiexi(clserver):
    date = clserver.recv(1024)
    print date
    list = str(date).split("\r\n")
    # 解析
    requesthead = list[0]
    print requesthead
    #使用正则表达式解析出请求头的文件名称
    file = re.match(r"\w+ +(/[^ ]*) ",requesthead).group(1)

    #对获取的问题名判断,如果是/的就进行显示index.html
    if "/"==file:
      file = "/index.html"
    try:
      f = open(HTML_ROOT_DIR+file,"rb")
    except:
      response_start_line = "HTTP/1.1 200 OK \r\n"
      response_headers = "Server:My server\r\n"
      response_body = "the file not file"
    else:
      file_date = f.readline()
      f.close()
      response_start_line = "HTTP/1.1 200 OK \r\n"
      response_headers = "Server:My server\r\n"
      response_body = file_date.decode("utf-8")

    response = response_start_line+response_headers+"\r\n"+response_body
    print response
    clserver.send(bytes(response))
    clserver.close()

def main():
  server = HTTPServer()
  server.bind(1001)
  server.start()

if __name__=="__main__":
  main()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用Python进行稳定可靠的文件操作详解
Dec 31 Python
python转换字符串为摩尔斯电码的方法
Jul 06 Python
python实现列表中由数值查到索引的方法
Jun 27 Python
使用python对文件中的数值进行累加的实例
Nov 28 Python
对pandas读取中文unicode的csv和添加行标题的方法详解
Dec 12 Python
python批量下载抖音视频
Jun 17 Python
python opencv minAreaRect 生成最小外接矩形的方法
Jul 01 Python
pyinstaller还原python代码过程图解
Jan 08 Python
基于Python实现2种反转链表方法代码实例
Jul 06 Python
python glom模块的使用简介
Apr 13 Python
python批量更改目录名/文件名的方法
Apr 18 Python
linux中nohup和后台运行进程查看及终止
Jun 24 Python
python编写简单端口扫描器
Sep 04 #Python
python 3.6.7实现端口扫描器
Sep 04 #Python
python用线性回归预测股票价格的实现代码
Sep 04 #Python
python多线程扫描端口(线程池)
Sep 04 #Python
Python数据分析模块pandas用法详解
Sep 04 #Python
Python实现TCP探测目标服务路由轨迹的原理与方法详解
Sep 04 #Python
基于python全局设置id 自动化测试元素定位过程解析
Sep 04 #Python
You might like
WordPress中设置Post Type自定义文章类型的实例教程
2016/05/10 PHP
phpinfo()中Loaded Configuration File(none)的解决方法
2017/01/16 PHP
新浪刚打开页面出来的全屏广告代码
2007/04/02 Javascript
javascript 获取所有id中包含某关键字的控件的实现代码
2010/11/25 Javascript
jQuery 遍历- 关于closest() 的方法介绍以及与parents()的方法区别分析
2013/04/26 Javascript
iframe子页面获取父页面元素的方法
2013/11/05 Javascript
浅谈javascript的call()、apply()、bind()的用法
2016/02/21 Javascript
实例讲解JavaScript中的this指向错误解决方法
2016/06/13 Javascript
JavaScript中常见的八个陷阱总结
2017/06/28 Javascript
Js利用console计算代码运行时间的方法示例
2017/09/24 Javascript
Vue如何从1.0迁移到2.0
2017/10/19 Javascript
javascript 通过键名获取键盘的keyCode方法
2017/12/31 Javascript
vue 中几种传值方法(3种)
2019/11/12 Javascript
vue 实现websocket发送消息并实时接收消息
2019/12/09 Javascript
解决Vue大括号字符换行踩的坑
2020/11/09 Javascript
[48:56]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 VG vs KG
2018/03/31 DOTA
python清除指定目录内所有文件中script的方法
2015/06/30 Python
python中的格式化输出用法总结
2016/07/28 Python
Python中__init__.py文件的作用详解
2016/09/18 Python
python 获取字符串MD5值方法
2018/05/29 Python
在Pycharm中将pyinstaller加入External Tools的方法
2019/01/16 Python
Python列表与元组的异同详解
2019/07/02 Python
详细整理python 字符串(str)与列表(list)以及数组(array)之间的转换方法
2019/08/30 Python
Django权限设置及验证方式
2020/05/13 Python
解决tensorflow 释放图,删除变量问题
2020/06/23 Python
亚马逊西班牙购物网站:amazon西班牙
2017/03/06 全球购物
加拿大领先的优质厨具产品在线购物网站:Golda’s Kitchen
2017/11/17 全球购物
地球上最先进的胡子和头发修剪器:Bevel
2018/01/23 全球购物
System.Array.CopyTo()和System.Array.Clone()有什么区别
2016/06/20 面试题
医学院学生的自我评价分享
2013/11/19 职场文书
讲文明树新风公益广告宣传方案
2014/02/25 职场文书
和睦家庭事迹
2014/05/14 职场文书
历史学专业求职信
2014/06/19 职场文书
2014年入党积极分子党校培训心得体会
2014/07/08 职场文书
党的群众路线教育实践活动批评与自我批评范文
2014/10/16 职场文书
统计员岗位职责范本
2015/04/14 职场文书