157 python網路程式設計 多程序伺服器

2021-09-26 07:37:29 字數 1434 閱讀 8063

from socket import

*from multiprocessing import

*from time import sleep

# 處理客戶端的請求並為其服務

defdealwithclient

(newsocket,destaddr)

:while

true

: recvdata = newsocket.recv(

1024)if

len(recvdata)

>0:

print

('recv[%s]:%s'%(

str(destaddr)

, recvdata)

)else

:print

('[%s]客戶端已經關閉'

%str

(destaddr)

)break

newsocket.close(

)def

main()

: sersocket = socket(af_inet, sock_stream)

sersocket.setsockopt(sol_socket, so_reuseaddr ,1)

localaddr =(''

,7788

) sersocket.bind(localaddr)

sersocket.listen(5)

try:

while

true

:print

('-----主程序,,等待新客戶端的到來------'

) newsocket,destaddr = sersocket.accept(

)print

('-----主程序,,接下來建立乙個新的程序負責資料處理[%s]-----'

%str

(destaddr)

) client = process(target=dealwithclient, args=

(newsocket,destaddr)

) client.start(

)#因為已經向子程序中copy了乙份(引用),並且父程序中這個套接字也沒有用處了

#所以關閉

newsocket.close(

)finally

:#當為所有的客戶端服務完之後再進行關閉,表示不再接收新的客戶端的鏈結

sersocket.close(

)if __name__ ==

'__main__'

: main(

)

通過為每個客戶端建立乙個程序的方式,能夠同時為多個客戶端進行服務

當客戶端不是特別多的時候,這種方式還行,如果有幾百上千個,就不可取了,因為每次建立程序等過程需要好較大的資源

1 5 7 Python匿名函式

1.匿名函式的核心 一些簡單的需要用函式去解決的問題,匿名函式的函式體只有一行 2.引數可以有多個,用逗號隔開 3.返回值和正常的函式一樣可以是任意的資料型別 請把下面的函式轉換成匿名函式 def add x,y return x y add 結果 sum1 lambda x,y x y print...

python多程序 Python多程序程式設計詳解

本文 在 python 3.6 環境下測試通過。多程序 multiprocessing 模組是在 python 2.6 版本中加入的,和多執行緒 threading 模組類似,都是用來做並行運算的。不過python既然有了threading,為什麼還要搞乙個multiprocessing呢?這是因為...

python 多程序程式設計

多程序指的是乙個程式可以啟動多個程序執行,一般模式如下 import multiprocessing from multiprocessing import process,current process import time cup 核數量 num cpus multiprocessing.cp...