1. 程式人生 > >py 的 第 30 天

py 的 第 30 天

寫法 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 天