今日内容:
1、基于udp协议的套接字
UDP协议称之为数据报协议 SOCK_DGRAM(TCP称之为SOCK_STREAM)
无连接(TCP是面向连接)
UDP协议传输数据不可靠(TCP可靠)
2、并发编程:
进程与线程的概念
开启进程、线程实现并发
一、UDP套接字
1、模板
from socket import * server=socket(AF_INET,SOCK_DGRAM) server.bind(("127.0.0.1",8080)) while True: data,client_addr=server.recvfrom(1024) server.sendto(data.upper(),client_addr)
from socket import * client=socket(AF_INET,SOCK_DGRAM) while True: msg=input(">>>:").strip() client.sendto(msg.encode("utf-8"),("127.0.0.1",8080)) data,server_addr=client.recvfrom(1024) print(data.decode("utf-8"))
2、对比
udp 协议可以发空 tcp不可以 udp没有粘包现象
tcp 有粘包现象 因为是流式协议
tcp 可靠的原因是因为在对方收到数据之后才会清掉发送方自己操作系统中的缓存
udp 不可靠是因为 不管对方收没收到数据,只要发送之后就会把自己的缓存清理掉
udp 的优点:运行快 TCP 运行相对较慢
ntp 是时间服务器
浏览器是套接字的客户端
3、网址如何实现上网的功能:
DNS 将域名解析成一个端口帮助你上网
1、上网的第一件事就是先找到本地的DNS
2、将www。。。。。交给套接字的服务端,拿到第一个服务端的ip地址+端口如果不指认端口,
默认端口就是80(80 是web服务的默认端口)
3、流程:
(1)客户端给服务端建立连接
(2)应用层的协议(htp协议)包裹路径
(3)应用层拷贝到操作系统上(调用TCP协议打包,IP协议打包,以太网协议打包)发送
操作系统维护这建好的来接然后发送到服务端
(4)服务端操作系统解包,提交到应用软件中包着htp协议的包裹
(5) 找到这个路径之后使用open 打开,然后while循环 send发送给见客户端
4、操作系统介绍:
操作系统从硬盘调取东西到内存
重要点:进程————
重要:1、操作系统是干什么的
2、多道技术,(多线程 并发编程)
5、开启进程
from multiprocessing import Process import time def task(name): print("%s is running" %name) time.sleep(2) print("%s is done" %name) if __name__=="__main__": p=Process(target=task,args=("egon",)) p.start() print("主")