一、回顾
1、TCP编码流程:——type=SOCK_STREAM
导入模块 导入模块
实例化对象 套接字 实例化对象
绑定ip+port bind(元组)
监听 listen( )
等待连接 accept 连接服务器 connect/connect_ex(不抛异常,返回错误码)
收发 recv/send 收发
关闭 close 关闭
2、UDP编码流程:——type=SOCK_DGRAM
导入模块 导入模块
实例化对象 套接字 实例化对象
绑定ip+port bind( )
收发 recvfrom/sendto 收发
关闭 close 关闭
3、TCP与UDP的区别:
tcp面向连接,可靠,面向字节流形式,只允许一个服务器在同一时间和一个客服端保持通讯。
udp不面向连接,不可靠,面向数据包形式,快,不粘包;允许一个服务器在同一时间和多个客服端保持连接。
4、交换机的通讯方式:广播、单播、组播
5、TCP发生粘包的问题:
粘包:发送端发送数据后,接收端不知道应该如何接收,导致的数据混乱。
原因:合包机制,拆包机制。(都发生在发送端)
6、OSI五层模型:
应用层
网络层
传输层
数据链路层
物理层
二、计算机
1、组成:
(1)主板:固化(寄存器,是直接和cpu进行交互的一个硬件)
(2)CPU:中央处理器——计算(数字计算和逻辑计算)和控制(控制所有硬件协调工作)
(3)存储:硬盘,内存
(4)输入设备:键盘,鼠标,话筒
(5)输出设备:显示器,音响,打印机
2、发展历史:
第一代计算机:电子管计算机,极其耗电,体积庞大,散热量特别高;
第二代计算机:晶体管计算机,比第一代有所优化;
第三代计算机:(白色大头计算机)集成电路计算机,一个板子固话几十到上百个小硬件;
第四代计算机:大型集成电路计算机,一个板子可以达到固话十几万个硬件;
第五代计算机:甚大型集成电路计算机。
3、计算机操作系统:
(1)操作系统是一个软件,是一个能直接操纵硬件的一个软件。
(2)微软研发的windows操作系统
(3)单处理机系统中多道程序运行时的特点:
① 多道:计算机内存中同时存放几道相互独立的程序;
② 宏观上并行:同时进入系统的几道程序都处于运行过程中,即它们开始了各自的运行,但都未运行完毕;
③ 微观上串行:实际上,各道程序轮流第用CPU,并交替运行。
(4)多道批处理系统:
① 多道:系统内可同时容纳多个行业。
② 成批:在系统运行过程中,不允许用户与其作业发挥等交互作用。
无论什么时候,操作系统的目标总是:让用户勇气爱更加的轻松。高可用,低耦合。
(5)分时系统:
把处理机运行的时间分成很短的时间片,按时间片轮流把处理机分配给各联机作业人使用。
① 多路性;② 交互性;③ 独立性;④ 及时性。
(6)实时系统:一般很少见,一般用于军事和工业生产中。
4、语言的发展史
(1)计算机识别的是二进制,
机器语言(1和0组成)——>汇编语言——>高级语言(面向过程语言:C;面向对象语言:C++,JAVA,python,.net,php)
5、操作系统的作用:
(1)封装所欲硬件接口,让各种用户使用电脑更加轻松;
(2)是对计算机内所有资源进行合理的调度和分配。
三、进程的理论
1、进程:
是指正在执行的程序;是程序执行过程中的一次 指令,数据集等的集合;也可以叫做程序的一次执行过程;进程是一个动态的概念。
进程有三大部分组成:代码段,数据段,PCB:进程管理控制。
2、进程的特点:
(1)动态性:进程的实质是程序在多道程序系统中的一次执行过程,进程是动态生产,动态消亡的。
(2)并发性:任何进程都可以同其他进程一起并发执行。
(3)独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位。
(4)异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进。
3、进程的三大基本状态
(1)就绪状态:已经获得运行需要的所有资源,处理CPU。
(2)执行状态:已经获得了所有资源包括CPU,处于正在运行。
(3)阻塞状态:因为各种原因,进程放弃了CPU,导致进程无法继续执行,此时进程处于内存中,继续等待获取CPU。
(挂起状态:因为各种原因,进程放弃了CPU,导致进程无法继续执行,此时进程被提出内存)
四、多进程演示
1 from bs4 import BeautifulSoup 2 import requests 3 import time 4 from multiprocessing import Process 5 6 headers = { 7 'user-agent':'Mozilla/5.0 (Windows NT 6.1; W…) Gecko/20100101 Firefox/61.0' 8 } 9 10 def get_url(url): 11 res = requests.get(url) 12 li = [] 13 if res.status_code == 200: 14 soup = BeautifulSoup(res.text,'html.parser') 15 re = soup.find('div',class_='beautiful_pictures_show').find_all('li') 16 for i in re: 17 s = i.find('img').get('src') 18 li.append(s) 19 return li 20 21 22 def get_img(url): 23 # url = 'http://pic.xiao4j.com/upload/meinv/2018_0816/144048869.jpg_270_410.jpg' 24 # s = url.split('/')[-1].split('_')[0] 25 # print(s) 26 r = requests.get(url) 27 if r.status_code == 200: 28 print() 29 with open(url.split('/')[-1].split('_')[0],'wb') as f: 30 f.write(r.content) 31 32 if __name__ == '__main__': 33 url = 'http://www.xiao4j.com/beauty/index.html' 34 img_url = get_url(url) 35 start = time.time() 36 p_l = [] 37 for i in img_url: 38 # get_img(i) 39 p = Process(target=get_img,args=(i,)) 40 p.start() 41 p_l.append(p) 42 43 [i.join() for i in p_l] 44 print(time.time() - start)