py 的 第 30 天
阿新 • • 發佈:2018-09-10
寫法 sel 線程 acc conn target 老師 rt thread 生成
首先學習了一下socket,這個經過周末作業總算是掌握精髓了,可能還沒掌握只是以為掌握了??
import socketserver class MyServer(socketserver.BaseRequestHandler): def handle(self): pass server = socketserver.ThreadingTCPServer((‘192.168.13.84‘,8001,),MyServer) server.serve_forever()
這裏上傳下載都要用self.request.send\recv開始也沒多想,後來看這他嗎是個類啊,def是函數,mysever能變,後面也能有很多參數然後每個函數裏面再寫入一些參數,就可以直接用self.xxx了
這個self比較省事了 省的寫__init__了
2,初識線程
import threading #這個是引進線程的模塊 def task(a1,a2,a3): time.sleep(2) print(‘拿快遞‘) def play(): print(‘和女朋友去耍‘) def wm(): print(‘去拿外賣‘) # 創建一個線程 # 讓該線程去執行任務:函數 t1 = threading.Thread(target=task,args=(1,2,3,)) #這個就是線程的固定寫法沒什麽 # 去執行吧 t1.start() # 創建一個線程 # 讓該線程去執行任務:函數 t2 = threading.Thread(target=play) # 去執行吧 t2.start() # 創建一個線程 # 讓該線程去執行任務:函數 t3 = threading.Thread(target=wm) # 去執行吧 t3.start() print(‘玩扇子‘) print(‘煽風點火‘) print(‘耍賤...‘)
3.線程接收任務
import threading def task(n): print(‘開始執行任務:‘,n) time.sleep(10) print(‘...‘) print(‘任務%s 執行完畢:‘%n) while True: name = input("請輸入任務:") t = threading.Thread(target=task,args=(name,)) t.start() 能看懂上面的這個就沒啥問題
4.socket和線程配合
import time import socket import threading def task(conn): time.sleep(20) data = conn.recv(1024) print(data) conn.close() server = socket.socket() server.bind((‘192.168.13.84‘,8001,)) server.listen(5) while True: conn,addr = server.accept() t = threading.Thread(target=task,args=(conn,)) #這傳送過來conn就是接收的意思conn,addr,不知道為什麽要家, t.start()
5。又解析socketserver看源碼現在有點難,不過問題不大就是老師點的太快了。
6。uuid模塊,根據時間生成字符串的,估計後面還會講
py 的 第 30 天