python實現多執行緒web伺服器

2021-09-21 13:22:42 字數 2524 閱讀 2827

'''自定義執行緒函式'''

def server(tcpclisock, addr):

bufsize = 1024

print('waiting for the connection:', addr)

data = tcpclisock.recv(bufsize).decode()

filename = data.split()[1]

filename = filename[1:]

'''當網路質量差沒有收到瀏覽器的訪問資料時執行'''

if filename == "":

tcpclisock.close()

print("請輸入要訪問的檔案")

base_dir = os.getcwd()

file_dir = os.path.join(base_dir,filename)

'''當訪問的檔案在本地伺服器存在時執行'''

'''主函式'''

if __name__ == '__main__':

'''分配ip、埠、建立套接字物件'''

addr = ("", 8080)

tcpsersock = socket(af_inet, sock_stream)

tcpsersock.bind(addr)

tcpsersock.listen(5)

print("waiting for connection......\n")

while true:

tcpclisock, addr = tcpsersock.accept()

thread = threading.thread(target=server, args=(tcpclisock, addr))

thread.start()

tcpsersock.close()

-在瀏覽器中輸入http://localhost:8080/success.html 因為success.html檔案在本地伺服器存在所以可以返回success.html頁面

-在瀏覽器中輸入http://localhost:8080/index.html 因為index.html檔案在本地伺服器不存在所以可以返回fail.html頁面

d:\anaconda\python.exe "c:/users/administrator/desktop/傳輸與交換技術作業/web多執行緒伺服器/web server.py"

python多執行緒實現

資料夾命名不能用官方已有的模組名比如threading.py test.py等等都會報錯 from multiprocessing import process import os 子程序要執行的 def run proc name print run child process s s name,...

python多執行緒實現

coding utf 8 import threading 匯入執行緒模組 from time import ctime,sleep 建立執行緒事件 defeat print 我在吃東西 s ctime 執行緒組 threads 建立執行緒數量 for x in range 10 t1 thread...

python多執行緒執行緒池實現

在python中多執行緒可以使用threading來實現,但實際使用時考慮效能等,大多會使用到執行緒池,下面就是基於python2和python3來說明下執行緒池的使用。import time def testthread fl time.sleep 1 print print fl return ...