from socket import *
from threading import *
import sys
import traceback
from threading import *

class HTTPSever(object):
def init(self,server_addr,static_dir):
# 增加服务器属性对象
self.server_address=server_addr
self.static_dir=static_dir
self.ip=server_addr[0]
self.port=server_addr[1]
self.create_socket()
# 创建套接字
def create_socket(self):
self.s=socket()
self.s.setsockopt(SOL_SOCKET,SO_REUSEADDR,1)
self.s.bind(self.server_address)
def serve_forever(self):

    self.s.listen(3)print('监听端口',self.port)while True:try:c,addr=self.s.accept()except KeyboardInterrupt:self.s.close()sys.exit('服务器退出')except Exception:traceback.print_exc()continue# 创建新的线程处理请求clientThread=Thread(target=self.handlerRequest,args=(c,))clientThread.setDaemon(True)clientThread.start()
def get_html(self,c,getRequest):print()if getRequest=="/":filename=self.static_dir+'/1.html'else:filename=self.static_dir+getRequesttry:print(filename)f=open(filename)except IOError:re='HTTP/1.1    404  not  found\r\n're+='\r\n're+='*****************************'else:re='HTTP/1.1   200  not  found\r\n're+='\r\n're+=f.read()finally:c.send(re.encode())
def get_data(self,c,getRequest):urls=['/time','/python','/edu']if getRequest in urls:re='HTTP/1.1   200  ok\r\n're+='\r\n'if getRequest =='/time':re+='time'elif getRequest=='/edu':re+='edu'elif getRequest=='/python':re+='python'else:re='HTTP/1.1   404  not  found\r\n're+='\r\n're+='*****************************'c.send(re.encode())
def handlerRequest(self,c):# 接收客户端请求request=c.recv(4096) requestHeader=request.splitlines()print(requestHeader[0])# 获取具体内容getRequest=str(requestHeader[0]).split(' ')[1]if getRequest=='/' or getRequest[-5:]=='.html':self.get_html(c,getRequest)else:self.get_data(c,getRequest)c.close()

if name==“main”:
# 生成对象
server_addr=(’’,8000)
static_dir=’./static’
httpd=HTTPSever(server_addr,static_dir)
# 启动服务器
httpd.serve_forever()
main()

python HTTP后台响应服务相关推荐

  1. Vue前后端页面下载功能实现演示,Python+flask提供后台下载服务

    Vue前后端页面下载功能实现 效果图 后台下载服务实现 前台简单实现 [ 文章推荐 ] Python 地图篇 - 使用 pyecharts 绘制世界地图.中国地图.省级地图.市级地图实例详解 效果图 ...

  2. 实习手册一(Python基于Tornado框架的接口响应服务)软件下载与环境配置

    目录 一.软件下载及环境配置: 1.Homebrew 2.python3.9 3.PyCharm专业版 4.MySQL 5.Navicat for MySQL 6.Redis 7.Postman 此次 ...

  3. 实习手册八(Python基于Tornado框架的接口响应服务)最终章

    目录 前言 Tornado_program common handler_base mysql_base sqlalchemy_base redis_base model log user serve ...

  4. pycharm构建虚拟环境_10分钟,带你用Python构建RESTful API 服务

    1. 前言 上一篇文章,介绍了使用 Java + Spring Boot + MyBatis 构建 RESTful API 的详细步骤:很多小伙伴表示,更愿意用 Python 编写 RESTful A ...

  5. python写linux脚本_Linux下设置python脚本文件为服务

    (最简单的方式nohup python xxx.py) ------------------------------------------------------------------------ ...

  6. nginx php如何无响应,nginx,_nginx 可以直接响应服务静态页面吗, 为何配置了很久都不成功?,nginx - phpStudy...

    nginx 可以直接响应服务静态页面吗, 为何配置了很久都不成功? 背景: 最近想自己写点东西放到网上, 买了域名和vps, 在vps上也搭好了ngxin服务器,想从最简单的静态页面开始,于是自己写了 ...

  7. Linux下设置python脚本文件为服务

    (最简单的方式nohup python xxx.py) ------------------------------------------------------------------------ ...

  8. 利用 Python 自动化和 Windows 服务 删除掉移动硬盘的临时文件

    平常将文件夹打包成压缩包或拷贝文件夹到移动硬盘内,临时文件会包含在里面,如果是程序源代码,在 Windows 系统下编译有时候还会受到影响. 本篇文章的目的是在移动硬盘插入到电脑的同时,利用 Pyth ...

  9. pyinstaller打包生成的exe文件并使用python终止后台的exe程序运行

    pyinstaller打包生成的exe文件并使用python终止后台的exe程序运行 目录 pyinstaller打包生成的exe文件并使用python终止后台的exe程序运行 #pyinstalle ...

最新文章

  1. 做了个小界面,mark一下
  2. mysql 导入导出摘要
  3. 《深入浅出数据分析》第九章——R语言
  4. 【Pytorch神经网络实战案例】22 基于Cora数据集实现图注意力神经网络GAT的论文分类
  5. 安卓逆向_10 --- Log 日志的插入和分析、toast方法、栈跟踪
  6. ShardingSphere(八) 分库分表的多种分片策略
  7. 安装和启动mysql
  8. eclipse 输入卡顿_解决eclipse卡顿
  9. [每天一个知识点]20-Java语言-菱形运算符
  10. Atitit 项目范围管理 目录 1. 应该包含下面过程:启动、范围计划、范围定义、范围核实及范围变更控制 1 1.1. 项目范围管理的五个过程 1 2. 启动过程 1 2.1. 项目章程(如质量、
  11. android手机用Termux安装archlinux
  12. RTI DDS 01
  13. android L和android M的区别
  14. 猎魂觉醒服务器界面不显示角色,猎魂觉醒新人常见问题集合 新人常见问题解决_3DM手游...
  15. 卷尺精度标准_卷尺的精度为多少mm 卷尺测量误差的原因有哪些
  16. Linux攻关之基础模块三 文件命令
  17. 网吧网管必备电脑常识教程篇之一
  18. 【ubuntu】使用ubuntu杀死指定端口
  19. ROS path [0]=/opt/ros/melodic/share/ros这种错误所有的可能性
  20. python 预约系统_Python_字典实现简单预约系统

热门文章

  1. java寻找最大的字母_【LeetCode(Java) - 744】寻找比目标字母大的最小字母
  2. python pexpect telnet_使用python的pexpect模块,实现远程免密登录的示例
  3. c语言各种编程风格 微软 gnu,编程规范-c语言的编程风格
  4. 服务器断电重启修复,WIN取消100M隐藏分区、异常断电后绕过修复模式
  5. 小学六年级能用计算机器,小学六年级信息技术测试题
  6. python rpc 性能比较_Python与RPC -- (转)
  7. php绘图技术加水印,PHP图片添加水印功能示例小结
  8. FPGA之道(46)数字电路中的隐患
  9. 【FPGA】SRIO中的关键问题总结(一)SRIO中的关键数据包格式总结
  10. 【 FPGA 】UltraFast设计方法学:如何管理IP约束