浏览器连不上web服务器,求解

用pycharm写了web服务器的代码,然后用浏览器连接不上(一直转圈圈)

浏览器连接不上的截图如下:

img

pucharm错误信息如下(手动停止的):

/usr/bin/python3.8 /home/yah/PycharmProjects/pythonProject/018_web_server_返回指定页面错误.py 
Traceback (most recent call last):
  File "/home/yah/PycharmProjects/pythonProject/018_web_server_返回指定页面错误.py", line 67, in 
    main()
  File "/home/yah/PycharmProjects/pythonProject/018_web_server_返回指定页面错误.py", line 60, in main
    new_client_socket, ip_port = tcp_server_socket.accept()
  File "/usr/lib/python3.8/socket.py", line 292, in accept
    fd, addr = self._accept()
KeyboardInterrupt

进程已结束,退出代码130 (interrupted by signal 2: SIGINT)


代码如下:

import socket

def request_handler(new_client_socket, ip_port):
    """接收信息,作出响应"""

    # 7.接收客户端浏览器发送的请求协议
    request_data = new_client_socket.recv(1024).decode()
    # 8.判断协议是否为空
    if not request_data:
        print(f'客户端{ip_port[0]}连接已断开!')
        new_client_socket.close()
        return

    # 使用空格切割请求行,请求头,请求空格,请求主体
    request_line_list = request_data.split(' ')
    # 切割出来的列表第2位就是请求的文件路径名
    file_path = request_line_list[1]

    if file_path == '/':
        file_path = '/index.html'

    # 9.拼接响应报文
    response_line = 'HTTP/1.1 200 OK\r\n'
    response_header = 'Server:PythonWS/2.1\r\n'
    response_bank = '\r\n'
    # response_body = 'Hello World!'

    try:
        # 读取文件
        with open('static' + file_path, 'rb') as file:
            response_body = file.read()
        # 将读取到的内容返回给客户端
        response_data = (response_line + response_header + response_bank).encode() + response_body
        # 10.发送相应报文
        new_client_socket.send(response_data)
        # 11.关闭当前客户端连接
        new_client_socket.close()

    except Exception as e:
        # 修改响应行为404
        response_line = 'HTTP/1.1 404 NotFound\r\n'
        # 响应的内容为错误
        response_body = f'Error!{str(e)}'
        # 把内容转换为字节码
        response_body = response_body.encode()


def main():
    # 1.导入模块
    # 2.创建套接字
    tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    # 3.设置地址重用
    tcp_server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True)
    # 4.绑定IP和端口
    tcp_server_socket.bind(('127.0.0.1', 8080))
    # 5.设置监听,套接字由主动变为被动
    tcp_server_socket.listen(128)
    # 6.接受客户端连接
    while True:
        new_client_socket, ip_port = tcp_server_socket.accept()
        request_handler(new_client_socket, ip_port)  # 调用函数处理请求
    # 11.关闭连接
    # tcp_server_socket.close()


if __name__ == '__main__':
    main()