代码:

#Author Kangimport socket# 创建一个socket实例sk = socket.socket()# 绑定IP地址与端口sk.bind(('localhost',8004))# 启动监听sk.listen()def kang(url): ''' 定义了一个kang函数,用于返回HTML页面 :param url: 网页传入的路径 :return:返回整个网页的内容 ''' with open("kang.html","rb") as f: ret = f.read() return retdef benben(url): ''' 定义了一个benben的函数,用于返回一些固定的值 :param url: 网页传入的路径 :return: 返回固定的值 ''' ret = "hello benben" return bytes(ret, encoding='utf-8')def f404(url): ''' 定义网页错误404的响应方法 :param url:网页传入的路径 :return:返回固定的值 ''' ret = "404 {} not found".format(url) return bytes(ret,encoding='utf-8')# 此列表,用于定义各个URL与函数之间的关系url_func = [ ("/kang/",kang), ("/benben/",benben),]while True: # 获取与客户端的连接 conn,addr = sk.accept() # 接收客户端的数据 data = conn.recv(1024) #根据客户端的URL地址,截取相应的信息 data_str = str(data,encoding='utf-8') li = data_str.split('/r/n') url = li[0].split()[1] # 往客户返回响应信息 conn.send(b'http/1.1 200 OK\r\n\content-type:text/html; charset=UTF-8\r\n\r\n') # 循环url_func函数与url判断,确定使用那个函数,返回那个值 for i in url_func: if i[0] == url: func = i[1] break else: func = f404 response = func(url) # 浏览器显示的内容 conn.send(response) #关闭连接 conn.close()sk.close()浏览器展示效果