day03-用tcp寫一個服務(wù)器,返回網(wǎng)絡(luò)請求

用tcp寫一個服務(wù)器,返回網(wǎng)絡(luò)請求

import threading
import socket


class WebServe:
    
    def __init__(self):
        """在python的初始化方法中,用 `self.變量`表示的是成員變量
        """        
        self.s_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
        self.s_socket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,True)
        self.s_socket.bind(("",8181))
        self.s_socket.listen(128)
    
    #靜態(tài)方法
    @staticmethod
    def res_data(c_client:socket.socket):
        try :
            recv_d = c_client.recv(100000).decode()
            path = recv_d.split(" ")[1]
            if path == "/":
                path = "/index.html"
            file = open("./res"+path,"rb")
            r_data = file.read()
            file.close
        except Exception as e:
            r_line = "HTTP/1.1 404 NOT FOUND\r\n"
            r_header = "server:python\r\nauthor:lingshijun\r\n"
            r_body = "file not found"
            r_result = r_line+r_header+"\r\n"+r_body
            c_client.send(r_result.encode())
        else :
            r_line = "HTTP/1.1 200 OK\r\n"
            r_header = "server:python\r\nauthor:lingshijun\r\n"
            r_result = (r_line+r_header+"\r\n").encode()+r_data
            c_client.send(r_result)
        c_client.close()

    def start(self):
        while 1:
            c_client,_ = self.s_socket.accept()
            program=threading.Thread(target=self.res_data,args=(c_client,))
            program.start()
            

        
if __name__ == "__main__":
    WebServe().start()
    
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容