import socket
import re
import gevent
from gevent import monkey
monkey.patch_all()# 识别等待时间,让协程切换
def client_handler(client_socket):
'''接收客户端链接请求,响应对应的的数据'''
# 接收数据
request_data = client_socket.recv(4096)
# 判断是否接收到数据
if not request_data:
print("客户端已经断开链接")
client_socket.close()
return
# 对接收到的客户端请求数据进行解码
request_str_data = request_data.decode()
#对请求的报文进行分割,分割出一个请求各行数列表
data_list = request_str_data.split("/r/n")
# 拿到请求行数据,请求行数据是列表第0个元素
request_line = data_list[0]
# 通过正则匹配到我们请求的文件路径
result = re.match(r"/w+/s+(/S+)", request_line)
# 判断匹配的请求文件路径是否存在
if not result:
print("请求路径不存在")
client_socket.close()
return
path_info = result.group(1)
print("用户请求信息%s" % str(path_info))
# 设置请求域名默认跳转首页
if path_info == "/":
# 指定首页地址
path_info = "/index.html"
# 响应头
response_header = "Server: PWS1.0/r/n"
try:
# 响应体,打开客户端请求的数据
with open("./ht