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