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