day33
UDP协议
OSI模型中,属于传输层的协议,仅用于不要求可靠性及分组顺序且数据量较小的简单传输。
只管发送,不管对方是否接收到,甚至不关心对方是否存在。
发送数据时,一旦发送,立马删除缓存数据。如果对方没收到,就真没了。
UDP最大数据长度为1472
案例
客户端
from socket import *
client = socket(AF_INET,SOCK_DGRAM)
client.sendto("%Y-%m-%d".encode("utf-8"),("127.0.0.1",1688))
data,addr = client.recvfrom(1472)
print(data)
服务器
from socket import *
import time
server = socket(AF_INET,SOCK_DGRAM)
server.bind(("127.0.0.1",1688))
while True:
data,addr = server.recvfrom(1472)
res = time.strftime(data.decode("utf-8"),time.localtime())
server.sendto(res.encode("utf-8"),addr)
DNS
DNS:域名解析服务器
将域名转换为IP地址,要连接服务器一定要知道IP,但IP不方便记忆。故我们把IP和一个域名绑定到一起。
域名:一串有规律的字符串
DNS是server端,本质是个数据库,在储域名和IP的对应关系
news.cctv.com
com顶级域名 cctv二级域名 news三级域名
并发编程
UDP可以处理多个客户端,但并不是真正的同时处理,而是按顺序处理,速度非常快,让人感觉像是同时处理,这就是并发。
想要真正同时运行,必须由多个执行单位使多个应用程序同时运行,而一种可以使服务器可同时处理多个客户端请求的能力,这就是并发。
多进程实现原理——多道技术
为了提高计算机利用率
1.空间复用 把内存分割为不同区域,每个区域装入不同程序
2.时间复用 当一个程序执行IO操作时,切换到另一个程序来执行
有了多道技术,计算机可在同一时间处理多个任务,遇到IO操作才该切换。
#切换程序之前一定要保存当前状态,当程序切回来的时候继续之前的步骤来执行。

浙公网安备 33010602011771号