Python客户端服务端、封装类写法

import socket
import re


def client_handler(client_socket):
"""客户端处理函数"""
# 接收到客户端的请求头 
    recv_data = client_socket.recv(4096)
    # 把bytes的请求头解码为str
    recv_str_data = recv_data.decode()
    # 使用字符串的切割函数,切割\r\n,拿到请求头 列表
    data_set = recv_str_data.split("\r\n")
    # 使用下标获取请求行
    request_line = data_set[0]
    # 使用正则表达式匹配请求行,使用匿名分组的()方便取 路径 的值
    result = re.match(r"\w+\s+(\S+)", request_line)
    # 假如result匹配的是空,则执行以下代码,返回错误信息,关闭socket,退出函数
    if not result:
        print("HTTP请求报文格式错误")
        client_socket.close()
        return
    # 通过匿名分组号1取得 路径
    path_info = result.group(1)
    print("接收到用户的资源请求 %s" % path_info)
    # 判断路径是否未写,未写是默认/,是的话替换为/index.html,否则执行try时会报错
    if path_info == '/':
        path_info = '/index.html'
    # 通过给的路径,在static文件夹中以二进制方式读取文件,假如文件不存在会抛出异常,执行except
    try:
    # 没有抛出异常则继续往下执行代码
        file
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值