""" 对象:数据与功能的结合体 类:多个对象公共的数据与功能的结合体 父类:多个类公共的数据与功能的结合体 对象必须要由类产生!!! """ import json from datetime import datetime,date json.JSONEncoder # 定义字典 d={'t1':str(datetime.today()),'t2':str(date.today())} print(d) # {'t1': '2022-01-11 16:41:03.768618', 't2': '2022-01-11'} # 序列化 res=json.dumps(d) print(res) # {"t1": "2022-01-11 16:41:03.768618", "t2": "2022-01-11"} """ 时间类型默认不支持json序列化 方式1:人工智能转换 str() 方式2:面向对象之继承 对象查找属性和方法的时候一定要遵循一个顺序 先从对象自身查找 再去产生该对象的类中查找 最后去类的父类中查找 """ import json from datetime import datetime,date class MyJsonClass(json.JSONEncoder): def default(self, o): if isinstance(o,datetime): return o.strftime('%Y-%m-%d %X') elif isinstance(o,date): return o.strftime('%Y-%m-%d') return super().default(o) # 调用父类的方法 # 定义字典 d={'t1':datetime.today(),'t2':date.today()} # 序列化 res=json.dumps(d,cls=MyJsonClass) print(res) # {"t1": "2022-01-11 18:57:45", "t2": "2022-01-11"}
一、软件开发架构
c/s架构(客户端,服务端)
将客户端看成是去店里消费的客人,将服务端看成是提供服务的店面
eg:收集各种app其实就是各大软件的客户端
服务端需要具备的三大特征
1.24小时不间断提供服务(24小时监听)
2.固定的地址(IP地址)
3.能够服务多个用户(高并发)
b/s架构(浏览器,服务器)
浏览器统一充当各个服务端的客户端,本质:bs架构本质上也是cs架构
# 网络编程其实研究的就是程序之间的数据通信
# 要想实现远程数据交互的前提是必须要有物理连接介质
# 除了有物理连接介质之外还应该有一些能够保证数据彼此无障碍交互的东西(标准) OSI七层协议
二、OSI七层协议
# 所有的计算机都必须要有这七层
# 开发层面可以归纳为五层
应用层
传输层
网络层
数据链路层
物理连接层
""" 从小往上研究 1.物理连接层 提供一个物理连接接口(网线口 无线网卡) 2.数据链路层 1.规定了电信号的分组方式 2.以太网协议 规定了计算机必须有一块网卡 并且网卡上面要有一个固定的一串数字 12位16进制数 前六位:产商编号 后六位:流水线号 上述的数字也称之为计算机的mac地址(类似于身份证号) """
·常见硬件
交换机:能够使接入该机器的所有计算机之间彼此互联 局域网:有交换机组成的网络 互联网:可以简单的理解为是多个局域网之间彼此互联 """ 基于mac地址的数据传输 1.广播风暴 2.mac地址不能跨局域网传输 """ 路由器:能够连接多个局域网并实现局域网之间的数据传输
2.1、网络层
IP协议:规定了接入互联网的计算机都必须有一个IP地址用于唯一标识 IPV4版本 最小 0.0.0.0 最大 255.255.255.255 IPV6版本 能够表示出地球上每一粒沙子 # IP地址能够唯一标识接入互联网的一台独一无二的计算机 公网IP与私网IP 公网IP需要花钱购买并申请 私网IP自带的但是无法直接基于互联网访问 """ arp协议 将IP地址转换成mac地址(基于网络请求) """
2.2、传输层
端口协议 范围:0~65535 特性:动态分配 eg:第一次运行微信 系统随机取一个端口号2022 然后关闭微信重新启动 系统随机取一个端口号 端口号基本使用 0~1024系统默认需要使用的端口号 1024~8000常见软件端口号 以后我们开发的软件最后使用8000之后的端口号 # 端口号(port):能够唯一标识一台计算机上面正在运行的一款应用程序 """ 端口号在同一台计算机同一时刻不能重复 """ 总结 ip+port 127.0.0.1:8080 """ 能够唯一标识世界上某一台接入互联网的计算机上面的某一个正在运行的应用程序 """
2.3、应用层
都是人为自定义的协议标准,可遵循可不遵循
HTTP协议、FTP协议 ...
三、TCP协议
流式协议 可靠协议 三次握手 建立链接 重要状态 listen监听态:等待对方发请求 syn_rcvd态:忙于恢复确认建立请求 # 洪水攻击:服务端在同一时间接收到了大量的要求建立链接的请求 四次挥手 断开链接 不能合并成三次
四、UDP协议
不可靠协议 数据发送没有通道的概念 发送出去了就不管了 """ TCP协议相当于打电话 你一句我一句 你侬我侬 UDP协议相当于发短信 发了就完事 管你看不看 """ 早期的QQ使用的就是UDP
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话