python28day
内容回顾
classmethod:
- 用不到对象,并且要用类名的时候
- 装饰一个方法,被装饰的方法会变成类方法
staticmethod:
- 把一个函数放到类里,变成一个静态方法
- 这个方法既用不到对象,也用不到类
魔术方法:
- new
- call
- len
- str
- repr
今日内容
到网络编程啦!!哈哈哈
网络的概念
- 唯一标识:比如身份证号
- 临时编号:比如学号
- 不变的:mac地址,唯一标识你的机器
17-8F-9A- 生产的网卡都是唯一的标识
- 变化的:ip地址 更好的更方便的找到你的机器
局域网的概念
- 几台机器通讯
- 交换机的出现
- 把信息发给交换机,交换机进行转发。
- 注:交换机只认识mac地址,用ip找到了mac地址
- 用到交换机:广播、单播、组播
ARP协议(地址解析协议)
- 通过一台机器的ip地址获取到mac地址
- 用到的设备:交换机
- 功能:广播、单播、组播
路由器
- 是个交换机
- 网关:
- 192.168.12.1
- 网段:
- 192.168.12.0
- IP地址
- ipv4:四位点分十进制
- 192.168.12.87
- 0-255
- 0.0.0.0-255.255.255.255
- 公网地址:需要我们自己申请购买的地址
- 内网地址:保留字段
- 192.168
- 172.16-172.31
- 10.0-10.255
- 特殊ip地址:127.0.0.1 本地回环地址,测试用
- 查看自己的ip:ipconfig
- 子网掩码: 也是一个ip地址 用来判断两台机器在不在一个局域网内
- 子网掩码和ip地址二进制按位与,得到的数就是所在网段
- ipv6:16进制,甚至可以给地球上每粒沙子分ip地址
socket模块
import socket sk=socket.socket()
sk.bind(('127.0.0.1',9000))
sk.listen() #就可以等人来连接了 conn,addr=sk.accept()
conn.send(b'hello')
msg=conn.recv(1024)
print(msg)
conn.close() sk.close()
import socket sk=socket.socket()
sk.connect(('127.0.0.1',9000)) msg=sk.recv(1024)
print(msg)
sk.send(b'byebye') sk.close()
a-发消息->b
- 10101010101
- 你-->01101010|101011101|10001110
- ip地址122.112.11.1--->0010001000010010100000101010
- 端口号8000-->10000100101010101010010100101010
- 能发,但接收端疯掉了,所有要约定,例如,前32位是xxx,后面是xx,然后是xxxx,这就是协议
7层协议
- 应用层
- 表示层
- 会话层
- 传输层
- 网络层
- 数据链路层
- 物理层
osi5层协议
应用层:python代码 b’hello‘
传输层:预备如何传输?使用的端口? tcp和udp协议
网络层:ip地址b’01010010110‘、ipv4、ipv6、路由器(三层交换机)
数据链路层:mac地址b’1101010010‘、arp协议、二层交换机、网卡
物理层
传到对面机器之后,倒着读出信息。套接字
tcp和udp协议
- tcp协议:
- 需要先建立连接,然后才能通信,就像打电话
- 占用连接、可靠、消息不丢失(有回执)、实时性高、慢
- 适合:语音聊天、视频聊天、线下高清视频缓存、发邮件
- 建立连接的过程:三次握手
- 形成全双工连接
- 请求连接服务SYN
- 返回:ACK+SYN
- 发送:ACK
- 断开连接的过程:四次挥手
- udp协议:
- 不需要先建立连接,就能通信,就像发短信
- 不占用连接、不可靠(消息因为网络不稳定丢失)
- 适合:在线播放视频
- tcp协议:
包的导入补充
- 看目录导入,如果在一个路径下就能导
- 导入一个包(文件夹),相当于执行了包下
__init__文件 - 要想导入文件夹下的文件
- 方式一:
import glance.api.policy - 方式二:
from glance.api import policy
- 方式一:
from . import xxx表示从当前路径下导入xx,相对导入,但相对导入文件不能直接运行- 当需要写一个功能,这个功能不是直接运行的,而是被别人导入后使用的,比如json,这种独立形成文件夹,所有文件都需要使用相对导入
代码总行数2823+33=2856行
python28day的更多相关文章
随机推荐
- 另一个角度看元宇宙与RPA:人工世界、平行员工与RPA
另一个角度看元宇宙与RPA:人工世界.平行员工与RPA 从元宇宙到平行员工,人工世界推动的虚实分工利好RPA 机器人是铁打营盘人类是流水兵,未来元宇宙的虚实分工RPA机会巨大 文/王吉伟 元宇宙是平行 ...
- Rainbond通过插件整合ELK/EFK,实现日志收集
前言 ELK 是三个开源项目的首字母缩写:Elasticsearch.Logstash 和 Kibana.但后来出现的 FileBeat 可以完全替代 Logstash的数据收集功能,也比较轻量级.本 ...
- JVM调参
今天看了下之前做的一个异步处理任务的服务,发现占用内存量比较大,达到2G,但我检查了代码,基本没有static对象.但这个服务有个特点,就是每次执行一个任务的时候,会从数据库中捞大量的数据做处理,因此 ...
- Nginx 的五大应用场景
一.HTTP服务器 Nginx本身也是一个静态资源的服务器,当只有静态资源的时候,就可以使用Nginx来做服务器,如果一个网站只是静态页面的话,那么就可以通过这种方式来实现部署. 1.在文档根目录Do ...
- <学习opencv>图像变换
拉伸.收缩.扭曲和旋转 统一调整大小 我们经常会遇到一些我们希望转换为其他尺寸的图像. 我们可能想要扩大或缩小图像; 这两项任务都是由同一个功能完成的. cv::resize() 该cv::resiz ...
- [opencv]keypoint数据结构分析
KeyPoint这数据结构中有如下数据成员: angle:角度,表示特征点的方向,通过Lowe大神的论文可以知道,为了保证方向不变形,SIFT算法通过对特征点周围邻域进行梯度运算,求得该点方向.-1为 ...
- 『无为则无心』Python函数 — 30、Python变量的作用域
目录 1.作用于的概念 2.局部变量 3.全局变量 4.变量的查找 5.作用域中可变数据类型变量 6.多函数程序执行流程 1.作用于的概念 变量作用域指的是变量生效的范围,在Python中一共有两种作 ...
- Swoole 中使用 UDP 异步服务器、UDP 同步客户端、UDP 协程客户端
UDP 异步风格服务器 # udp_server.php // 创建 UDP 服务器对象,监听0.0.0.0:9502端口,类型为SWOOLE_SOCK_UDP $serv = new Swoole\ ...
- Springboot项目引入druid安装部署使用
一.maven引入依赖,数据库驱动根据项目需求自行引入 <!-- https://mvnrepository.com/artifact/com.alibaba/druid-spring-boot ...
- Kubernetes 部署 Kubernetes-Dashboard v2.0.0 尝鲜
目录· . 一.简介· . 二.兼容性· . 三.部署 Kubernetes Dashboard· . 1.Dashboard RBAC· . 2.创建 ConfigMap.Secret· . 3.k ...