当前位置 : 主页 > 网络编程 > 其它编程 >

初学python之路day33

来源:互联网 收集:自由互联 发布时间:2023-07-02
1.udp协议udp用户数据包协议在OSI模型中属于传输层的协议,不可靠性,不要求分组顺序且数据量较小的简单传输,传输速度快类似对讲机用户数据包协议在OSI模型中属于传输层的协议, 不可靠
1.udp协议udp用户数据包协议在OSI模型中属于传输层的协议,不可靠性,不要求分组顺序且数据量较小的简单传输,传输速度快类似对讲机用户数据包协议在OSI模型中属于传输层的协议, 不可靠性,不要求分组顺序且数据量较小的简单传输,传输速度快类似对讲机只顾发送数据不管对方是否接受甚至不关心对方是否在线与tcp的区别不可靠传输无需建立连接更不会粘包但是每次发送的数据包不能太大另外UDP是基于数据报的每一次发送都是一个单独的数据报所以不会产生粘包问题在发送数据时udp发送数据一旦发送出去缓存区的数据就会被删除若对方没有收到数据就没了造成数据丢失tcp在发送数据后会等待确认信息如果没有收到确认信息数据还会保存在缓冲区去直到发送成功为止或者等待时间过长超时注意发送方的数据长度应与接收方的接受长度统一否则将丢失数据windows下直接报错。

  缓存区大小不可能无限大如果要传输大数据超过UDP数据报大小则需要在UDP基 础上加上额外的应用层协议。

  并且即使缓冲区足够仍会出现数据丢失UDP的最大数据长度为1472

udp代码服务器端服务器不需要监听 listen不需要接收请求 accept收数据 recvfrom(缓冲区大小)发数据 sendto(数据,地址)客户端:不需要建立连接收数据 recvfrom(缓冲区大小)发数据 sendto(数据,地址)

案例服务器from socket import *# 创建基于UDP的scoket 必须手动指定server socket(AF_INET,SOCK_DGRAM)server.bind(("127.0.0.1",1688))while True:data,addr server.recvfrom(1024)print("收到来自%s的消息 : %s" % (addr,data))server.sendto(data.upper(),addr)# server.close()客户端import socketclient socket.socket(socket.AF_INET,socket.SOCK_DGRAM)# UDP 不需要建立链接# 发送数据时 要指定接受方地址client.sendto("hello".encode("utf-8"),("127.0.0.1",1688))data,addr client.recvfrom(1024)print("收到来自%s的消息 : %s" % (addr,data))client.close()

2.UDP的应用DNS

DNS域名系统Domain Name System是互联网的一项服务域名是给IP地址取的别名同时为了在查询名字与地址对应关系时更快所以给域名也划分了不同区域。DNS的作用将域名转换为IP地址 要连接服务器 一定要知道IP 单独ip不方便记忆 所以我们吧ip和一个域名绑定到一起 域名一串有规律的字符串DNS 是CS结构的server端DNS 使用的是UDP 协议 因为 传输的数据小 但对速度要求高 一个DNS要服务很多计算机DNS 本质就是一个大型数据库系统 里面存储 域名和ip的对应关系

3.进程

进程指的是正在运行的程序是一系列过程的统称也是操作系统在调度和进行资源分配的基本单位进程是实现并发的一种方式

4.多进程的实现原理-多道技术

进程这个概念来自于操作系统没有操作系统就没有进程操作系统位于应用软件和硬件设备之间本质上也是一个软件由系统内核(管理所有硬件资源)与系统接口(提供给程序员使用的接口)组成操作系统是为方便用户操作计算机而提供的一个运行在硬件之上的软件操作系统的两个核心作用1.控制硬件,隐藏丑陋复杂的硬件细节2.将无序的硬件竞争变得有序多道技术:为了提高计算机的利用率在计算机发展的前期同一时间只能运行一个程序要同时多个应用程序被运行就需要多道技术多道技术中的多道指的是多个程序多道技术的实现是为了解决多个程序竞争或者说共享同一个资源比如cpu的有序调度问题解决方式即多路复用多路复用分为时间上的复用和空间上的复用。1.空间复用 把内存分割为不同区域 ,每个区域装入不同的程序2.时间复用 当一个程序执行IO操作时,切换到另一个程序来执行光切换还不行 必须在切换前保存当前的状态 以便与恢复执行**空间上的复用最大的问题是**程序之间的内存必须分割这种分割需要在硬件层面实现由操作系统控制。如果内存彼此不分割则一个程序可以访问另外一个程序的内存首先丧失的是安全性比如你的qq程序可以访问操作系统的内存这意味着你的qq可以拿到操作系统的所有权限。其次丧失的是稳定性某个程序崩溃时有可能把别的程序的内存也给回收了比方说把操作系统的内存给回收了则操作系统崩溃。多道技术的作用计算机就可以在同一时间处理多个任务注意:并不是多道就一定提高了效率如果多个任务都是纯计算 那么切换反而降低了效率遇到IO操作才应该切换这才能提高效率

 

转:https://www.cnblogs.com/wangwei5979/p/10951443.html

网友评论