【Python】socket解析模板

import socket

def operation_request(client):
    recv= client.recv(1024)
    data = str(recv,encoding='utf8')
    request_header, request_body = data.split('\r\n\r\n')
    row = request_header.split('\r\n')
    method, url, protocal = row[0].split(' ')
    func = None
    for i in router:
        if url == i[0]:
            func = i[1]
            break
    if func:
        return func()
    else:
        return b'404'

def run():
    # 服务端
    s = socket.socket()  # 创建 socket 对象
    host = socket.gethostname()  # 获取本地主机名
    port = 12345  # 设置端口
    s.bind((host, port))  # 绑定端口

    s.listen(5)  # 等待客户端连接
    while True:
        c, addr = s.accept()  # 建立客户端连接
        response = operation_request(c)
        c.send(b'HTTP/1.1 200 OK\r\n\r\n')
        c.send(response)
        c.close()

备注:本机建立的socket服务,本机浏览器访问可能会被拒绝,建议host改为本机的网络IP

 

posted @ 2021-06-09 14:50  纯正·老王  阅读(85)  评论(0)    收藏  举报