第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 python 中使用 gevent 的靜態(tài) Web 服務(wù)器演示

在 python 中使用 gevent 的靜態(tài) Web 服務(wù)器演示

拉風(fēng)的咖菲貓 2021-08-05 16:31:14
我的靜態(tài) Web 服務(wù)器演示在 python 中使用 gevent 存在一些問題。當(dāng)我的瀏覽器使用http://localhost:8080訪問我的 Web 服務(wù)器時,它沒有任何響應(yīng)。如果我的靜態(tài) Web 服務(wù)器演示不使用 gevent,它運(yùn)作良好,一定是 gevent 有問題。#coding=utf-8from socket import *from gevent import monkeyimport reimport geventmonkey.patch_all()def handle_client(client_socket):    recv_data = client_socket.recv(1024).decode("utf-8")    response_header_lines = recv_data.splitlines()    for line in response_header_lines:        print(line)    http_request_line = response_header_lines[0]    get_file_name = re.match("[^/]+(/[^ ]*)", http_request_line).group(1)    print("file name is ===>%s"%get_file_name)  #for test    if get_file_name == "/":        get_file_name = DOCUMENTS_ROOT + "/index.html"    else:        get_file_name = DOCUMENTS_ROOT + get_file_name    print("file name is ===2>%s"%get_file_name)    try:        f = open(get_file_name, "rb")    except IOError:        response_header = "HTTP/1.1 404 not found\r\n"        response_header += "\r\n"        response_body = "404 not found"    else:        response_header = "HTTP/1.1 200 OK\r\n"        response_header += "\r\n"        response_body = f.read()        f.close()    finally:        client_socket.send(response_header.encode("utf-8"))        client_socket.send(response_body)        client_socket.close()def main():    server_socket = socket(AF_INET, SOCK_STREAM)    server_socket.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)    server_socket.bind(("", 8080))    server_socket.listen(128)    while True:        client_socket, client_addr = server_socket.accept()        #handle_client(client_socket)        gevent.spawn(handle_client, client_socket)    server_socket.close()DOCUMENTS_ROOT = "./html"if __name__ == "__main__":    main()
查看完整描述

1 回答

?
largeQ

TA貢獻(xiàn)2039條經(jīng)驗 獲得超8個贊

你應(yīng)該在導(dǎo)入任何將被修補(bǔ)的模塊之前應(yīng)用猴子補(bǔ)丁,socket這里有問題:


from gevent import monkey

monkey.patch_all()


from socket import *


...

它的文檔強(qiáng)調(diào):


補(bǔ)丁應(yīng)該在程序的生命周期中盡早完成。例如,主模塊(針對main進(jìn)行測試的模塊 或第一個導(dǎo)入的模塊)應(yīng)該以此代碼開頭,最好在任何其他導(dǎo)入之前


查看完整回答
反對 回復(fù) 2021-08-05
  • 1 回答
  • 0 關(guān)注
  • 153 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號