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...