首先学习了一下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模块,根据时间生成字符串的,估计后面还会讲