初学时,建议各位命名变脸的时候要见名知意,不要学我图省事 import socket if __name__ == '__main__': a = socket.socket(socket.AF_INET, socket.SOCK_STREAM) a.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True) a.bind(('', 8080)) a.listen() while True: conn, ip = a.accept() conn_recv = conn.recv(4096) if len(conn_recv) > 0: recv_data = conn_recv.decode('utf-8') print(recv_data) recv_data_split = recv_data.split(' ', 2)[1] print(recv_data_split) # 如果recv_data_split = '/' ,则应该让其访问项目的首页! if recv_data_split == '/': recv_data_split = '/index.html' try: with open('static' + recv_data_split, 'rb') as f: f.data = f.read() except Exception as e: # 设置响应行 response_line = 'HTTP/1.1 404 Not Found\r\n' # 响应头 response_header = 'Server:PWB1.0\r\n' # 响应体 with open('static/error.html', 'rb') as f: f.data = f.read() response_body = f.data # 组装响应数据 response_data = (response_line + response_header + '\r\n').encode('utf-8') + response_body # 发送数据 conn.send(response_data) else: # 设置响应行 response_line = 'HTTP/1.1 200 ok\r\n' # 响应头 response_header = 'Server:PWB1.0\r\n' # 响应体 response_body = f.data # 组装响应数据 response_data = (response_line + response_header + '\r\n').encode('utf-8') + response_body #发送数据 conn.send(response_data) finally: conn.close()