#coding=utf-8
import socket
import sys
from multiprocessing import Process
import reclass WSGIServer(object):addressFamily = socket.AF_INETsocketType = socket.SOCK_STREAMrequestQueueSize = 5def __init__(self, server_address):#创建一个tcp套接字self.listenSocket = socket.socket(self.addressFamily,self.socketType)#允许重复使用上次的套接字绑定的portself.listenSocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)#绑定self.listenSocket.bind(server_address)#变为被动,并制定队列的长度self.listenSocket.listen(self.requestQueueSize)def serveForever(self):'循环运行web服务器,等待客户端的链接并为客户端服务'while True:#等待新客户端到来self.clientSocket, client_address = self.listenSocket.accept()#方法2,多进程服务器,并发服务器于多个客户端newClientProcess = Process(target = self.handleRequest)newClientProcess.start()#因为创建的新进程中,会对这个套接字+1,所以需要在主进程中减去依次,即调用一次closeself.clientSocket.close()def handleRequest(self):'用一个新的进程,为一个客户端进行服务'recvData = self.clientSocket.recv(2014)requestHeaderLines = recvData.splitlines()for line in requestHeaderLines:print(line)httpRequestMethodLine = requestHeaderLines[0]getFileName = re.match("[^/]+(/[^ ]*)", httpRequestMethodLine).group(1)print("file name is ===>%s"%getFileName) #for testif getFileName == '/':getFileName = documentRoot + "/index.html"else:getFileName = documentRoot + getFileNameprint("file name is ===2>%s"%getFileName) #for testtry:f = open(getFileName)except IOError:responseHeaderLines = "HTTP/1.1 404 not found\r\n"responseHeaderLines += "\r\n"responseBody = "====sorry ,file not found===="else:responseHeaderLines = "HTTP/1.1 200 OK\r\n"responseHeaderLines += "\r\n"responseBody = f.read()f.close()finally:response = responseHeaderLines + responseBodyself.clientSocket.send(response)self.clientSocket.close()#设定服务器的端口
serverAddr = (HOST, PORT) = '', 8888
#设置服务器服务静态资源时的路径
documentRoot = './html'def makeServer(serverAddr):server = WSGIServer(serverAddr)return serverdef main():httpd = makeServer(serverAddr)print('web Server: Serving HTTP on port %d ...\n'%PORT)httpd.serveForever()if __name__ == '__main__':main()

网页静态服务器-3-使用类相关推荐

  1. 网页静态服务器-2显示需要的页面

    #coding=utf-8 import socket from multiprocessing import Process import redef handleClient(clientSock ...

  2. 网页静态服务器-1-显示固定的页面

    #coding=utf-8 import socket from multiprocessing import Processdef handleClient(clientSocket):'用一个新的 ...

  3. 想把静态网页放到服务器上,怎么样让所有人都去访问到

    前两天自己买了百度云服务器和域名,然后写了一个静态的网页,准备把这个静态的网页放到服务器上去,这样的话,任何人输入网址,都可以看到我写的这个静态网页:于是这两天一直在研究这东西要怎么做才能实现,零零散 ...

  4. 有了服务器,域名,如何将静态网页放到服务器上,让所有人都能访看到?

    前两天自己买了百度云服务器和域名,然后写了一个静态的网页,准备把这个静态的网页放到服务器上去,这样的话,任何人输入网址,都可以看到我写的这个静态网页:于是这两天一直在研究这东西要怎么做才能实现,零零散 ...

  5. 网页静态化技术Freemarker

    网页静态化技术Freemarker 一.Freemarker的基本介绍 1.1为什么要使用网页静态化技术 网页静态化解决方案在实际开发中运用比较多,例如新闻网站,门户网站中的新闻频道或者是文章类的频道 ...

  6. 网页静态化和网页伪静态化之间的区别与选择

    网页静态化和网页伪静态化,如果我们是一个不懂网站的人估计听到这些词可能会比较头晕,王晟璟在刚开始接触并尝试建设自己的个人博客网站的时候也是如此,看了很多关于这方面的资料也还是云里雾里的,不过后面终于整 ...

  7. Freemarker网页静态化

    1 课程计划 第九天: 1.使用freemarker实现网页静态化 a )  FreeMarker的使用方法 b )  FreeMarker的模板语法 c )  FreeMarker整合springm ...

  8. 网页游戏服务器应该如何挑选?

    网页游戏又叫无端网游.页游,基于网页的多人在线游戏,不需要下载客户端,打开网页就能玩的网络游戏. 页游运营平台架构由平台接入层和游戏服务器群组成.平台接入层主要是为平台的提供运营平台官方网站登陆和账户 ...

  9. 网页静态化技术Freemarker简单Demo

    为什么要用网页静态化技术 网页静态化解决方案在实际开发中运用比较多,例如新闻网站,门户网站中的新闻频道或者是文章类的频道. 随着用户访问量以及数据量的增大,网页静态化技术方案如今越来越流行. 什么是网 ...

最新文章

  1. 基于visual Studio2013解决面试题之0901奇偶站队
  2. 实现2D全景图的中心视野变换
  3. mysql 约束 域_MySQL-约束
  4. Android内容提供程序
  5. DCMTK:将VeriLUM CCx_xx.dat文件转换为DCMTK显示文件
  6. Python-WSGI协议如何实现?
  7. python获取当前路径导包_python 通过文件夹导入包的操作
  8. 为什么有科学家怀疑太阳系是被设计出来的
  9. Scrapy:学习笔记(2)——Scrapy项目
  10. copy 和mutaleCopy
  11. 版本控制工具的必要性、作用、分类和发展历程
  12. 【Matlab】 读取文件各种方法
  13. 计算机的创新产品,这几种电脑创新功能 空有喝彩没人买
  14. 抽象的数码艺术-分形艺术
  15. Visio 连线 取消自动附着,取消自动捕捉
  16. 回头再学Java系列-前言
  17. 究极摸鱼挂科王终于击败了无敌可怕Vulkan大魔王
  18. 通过注册表方式启动和关闭手写输入法(方法适合各种应用)
  19. discuz调用php,PHP调用discuz登陆框实现外部登录
  20. Django知识点:认识Django

热门文章

  1. spark RDD,reduceByKey vs groupByKey
  2. 小程序中view的自定义属性获取
  3. 数据库数据类型decimal理解
  4. 为 Nginx 添加模块
  5. about the libiconv.2.dylib
  6. BZOJ 3038: 上帝造题的七分钟2【线段树区间开方问题】
  7. Windows 10 IIS所有的html返回空白
  8. 导致Oracle性能抖动的参数提醒
  9. 在团800运维工作总结之couchbase使用
  10. form的enctype和action