欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Python學(xué)習(xí)----靜態(tài)web服務(wù)器-創(chuàng)新互聯(lián)

開發(fā)靜態(tài)web服務(wù)器

開發(fā)步驟:
1、編寫一個(gè)TCP服務(wù)端程序
2、獲取瀏覽器發(fā)送的HTTP請(qǐng)求報(bào)文數(shù)據(jù)
3、讀取固定頁面數(shù)據(jù),把頁面數(shù)據(jù)組裝HTTP響應(yīng)報(bào)文數(shù)據(jù)發(fā)送給瀏覽器
4、HTTP響應(yīng)報(bào)文數(shù)據(jù)發(fā)送完成之后,關(guān)閉服務(wù)于客戶端的套接字

成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),北屯企業(yè)網(wǎng)站建設(shè),北屯品牌網(wǎng)站建設(shè),網(wǎng)站定制,北屯網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,北屯網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
import socket

if __name__ == '__main__':
    # 1、編寫一個(gè)TCP服務(wù)端程序
    tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    tcp_server_socket.bind(("", 8080))
    tcp_server_socket.listen(128)

    while True:
        # 2、獲取瀏覽器發(fā)送的HTTP請(qǐng)求報(bào)文
        client_socket, client_addr = tcp_server_socket.accept()
        client_request_data = client_socket.recv(1024).decode()
        print(client_request_data)

        # 3、讀取固定頁面數(shù)據(jù),把頁面數(shù)據(jù)組裝稱HTTP響應(yīng)報(bào)文數(shù)據(jù)發(fā)送給瀏覽器
        # rb r 讀取數(shù)據(jù),b讀取二進(jìn)制的方式讀取文件
        with open("./index.html", "rb") as f:
            file_data = f.read()
        # 組裝http響應(yīng)報(bào)文
        response_line = "HTTP/1.1 200 OK \n"
        response_header = "Server:pwb\n"
        response_body = file_data
        response_data = (response_line + response_header + "\n").encode() + response_body
        client_socket.send(response_data)
        client_socket.close()

和之前服務(wù)端編寫差不多,差別在于,首先客戶端不需要我們編寫了,是通過瀏覽器發(fā)送請(qǐng)求。
然后,因?yàn)闉g覽器遵循的是http請(qǐng)求,所以我們?cè)谟胹ocket進(jìn)行返回時(shí),需要遵循h(huán)ttp響應(yīng)的格式,將數(shù)據(jù)進(jìn)行返回。
目前為止,還沒有學(xué)習(xí)框架,不能像java的spring那樣。

目前端口是寫死在程序中,如果我們?cè)贚inux服務(wù)器中啟動(dòng)服務(wù)起,通過命令行的方式指定端口:
1、導(dǎo)入模塊
import sys
2、獲取命令終端輸入的數(shù)據(jù)
sys.argv

在這里插入圖片描述
這樣就可以讀取命令行傳入的參數(shù),通過指定端口進(jìn)行啟動(dòng)。

最終版,通過命令行方式啟動(dòng)

import socket
import sys
import threading


class HttpWebServer:
    def __init__(self, port):
        self.tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.tcp_server_socket.bind(("", port))
        self.tcp_server_socket.listen(128)

    def handle_client_request(self, client_socket):
        client_request_data = client_socket.recv(1024).decode()
        print(client_request_data)
        request_data = client_request_data.split(" ")
        print(request_data)
        if len(request_data) == 1:
            client_socket.close()
            return
        request_path = request_data[1]
        if request_path == "/":
            request_path = "/index.html"
        try:
            with open("./static" + request_path, "rb") as f:
                file_data = f.read()
        except Exception as e:
            response_line = "HTTP/1.1 404 Not Found \n"
            response_header = "Server:pwb\n"
            response_body = "404 Not Found sorry"
            response_data = (response_line + response_header + "\n").encode() + response_body.encode()
            client_socket.send(response_data)
        else:
            response_line = "HTTP/1.1 200 OK \n"
            response_header = "Server:pwb\n"
            response_body = file_data
            response_data = (response_line + response_header + "\n").encode() + response_body
            client_socket.send(response_data)
        finally:
            client_socket.close()

    def start(self):
        while True:
            client_socket, client_addr = self.tcp_server_socket.accept()
            print("客戶端地址:", client_addr)
            sub_thread = threading.Thread(target=self.handle_client_request, args=(client_socket,))
            sub_thread.start()


def main():
    if len(sys.argv) != 2:
        print("格式錯(cuò)誤 python xxx.py 9090")
        return
    if not sys.argv[1].isdigit():
        print("格式錯(cuò)誤 python xxx.py 9090")
        return
    port = int(sys.argv[1])
    my_web_server = HttpWebServer(port)
    my_web_server.start()


if __name__ == '__main__':
    main()

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

當(dāng)前題目:Python學(xué)習(xí)----靜態(tài)web服務(wù)器-創(chuàng)新互聯(lián)
文章來源:http://chinadenli.net/article6/dcppig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、企業(yè)網(wǎng)站制作、電子商務(wù)、網(wǎng)站內(nèi)鏈、靜態(tài)網(wǎng)站、全網(wǎng)營(yíng)銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)
国产偷拍盗摄一区二区| 狠狠干狠狠操亚洲综合| 少妇激情在线免费观看| 国产精品午夜福利免费阅读 | 久久精品亚洲精品国产欧美| 自拍偷拍一区二区三区| 国产精品亚洲综合天堂夜夜| 二区久久久国产av色| 国产白丝粉嫩av在线免费观看| 中文字幕亚洲精品乱码加勒比| 千仞雪下面好爽好紧好湿全文| 欧美大黄片在线免费观看| 日韩精品一区二区亚洲| 黄色片国产一区二区三区| 国内胖女人做爰视频有没有| 亚洲中文字幕视频在线播放| 亚洲一区二区三区在线免费| 欧美午夜国产在线观看| 亚洲精品国产主播一区| 一区二区三区欧美高清| 国产精品亚洲一级av第二区| 国产免费观看一区二区| 久草国产精品一区二区| 欧美成人免费一级特黄| 亚洲国产成人精品一区刚刚| 精品亚洲香蕉久久综合网| 国产永久免费高清在线精品| 人妻少妇系列中文字幕| 欧美精品日韩精品一区| 日韩女优精品一区二区三区| 九九蜜桃视频香蕉视频| 久草视频这里只是精品| 国产精品伦一区二区三区四季 | 午夜视频在线观看日韩| 国产午夜福利在线观看精品| 亚洲精品深夜福利视频| 欧美日韩精品人妻二区三区| 免费观看一区二区三区黄片| 久久99精品国产麻豆婷婷洗澡| 少妇毛片一区二区三区| 久久精品亚洲欧美日韩|