Python 實現乙個簡單的web伺服器

2022-09-29 16:24:14 字數 1617 閱讀 9418

import re

import socket

def service_cilent(new_socket):

request = new_socket.recv(1024).decode("utf-8")

# python splitlines() 按照行('\r', '\r\n', \n')分隔,返回乙個包含各行作為元素的列表,www.cppcns.com如果引數 keepends 為 false,不包含換行符,如果為 true,則保留換行符。

# 開啟檔案成功就讀檔案 然後關閉檔案指標

html_content = f.read()

f.close()

# 準備傳送給瀏覽器的資料---header

# 將response header傳送給瀏覽器

new_socket.send(response.encode("utf-8"))

# 將response body傳送給瀏覽器

new_sockeedvqcextxut.send(html_content)

# 關閉套程式設計客棧接字

new_socket.close()

def main():

# 建立套接字

tcp_servedvqcextxuer_so程式設計客棧cket = socket.socket(socket.af_inet, socket.sock_stream)

# tcp_server_socket.setsockopt(socket.sol_socket, socket.so_reuseaddr, 1)

# 繫結

tcp_server_socket.bind(("", 7089))

# 監聽套接字

tcp_server_socket.listen(128)

while true:

new_socket, cilent_addr = tcp_server_socket.accept()

service_cilent(new_socket)

# 關閉監聽套接字

tcp_server_socket.close()

if __name__ == '__main__':

main()

Python實現的乙個簡單LRU cache

起因 我的同事需要乙個固定大小的cache,如果記錄在cache中,直接從cache中讀取,否則從資料庫中讀取。python的dict 是乙個非常簡單的cache,但是由於資料量很大,記憶體很可能增長的過大,因此需要限定記錄數,並用lru演算法丟棄舊記錄。key 是整型,value是10kb左右的p...

共享乙個封裝Silverlight的WebPart

不管是報表圖表還是電子地圖,將silverlight應用程式嵌入到moss中,可以大大提高moss站點的使用者體驗。而合理的應用webpart對嵌入的silverlight進行封裝則能夠減少開發複雜程度。最近參與的專案中有不少這樣的案例,於是便寫了乙個簡單的silverlight封裝webpart,...

Python 實現乙個簡單的多執行緒

import threading def main str print str def create thread num,args threads for i in range num try t threading.thread target main,args args t.start exc...