自定义python网络服务器继续加载

时间:2019-07-17 00:02:23

标签: python http webserver

我正在创建python网络服务器,如果我在加载2个文件后关闭了连接,则页面无法完全加载。

我尝试了不同的方法,例如多个线程,每个ip限制1个连接,并将close方法移动到另一个位置,但是仍然无法正常工作。在其中一种方法中,在未注释关闭函数和断点的情况下,页面可以正常加载。

while True:
    serve_thread = Thread(target=serve)
    conn, addr = SERVER_SOCKET.accept()
    serve_thread.start()
    request = conn.recv(256)
    if b"GET" in request:
        request = ((request.decode()).rstrip("\r\n").split()[1])[1:]
        print(request)
        if request is '':
            requested_file = open("index.html", "rb")
            data = requested_file.read()
            requested_file.close()
            conn.sendall(OK_HEADER + data)
        elif exists(request):
            requested_file = open(request, "rb")
            data = requested_file.read()
            conn.sendall(OK_HEADER + data)
        else:
            requested_file = open("notFound.html", "rb")
            data = requested_file.read()
            requested_file.close()
            conn.sendall(NOT_FOUND_HEADER + data)
    #conn.close()
    #return

如果我尝试使用带注释的close方法的代码,则页面加载良好,但仍保持加载状态。相反,如果我取消注释close方法,则页面无法完全加载。

有任何提示吗?

0 个答案:

没有答案