1网络编程OSI协议
网络编程:
软件开发结构
1,C/S 架构
s: server 服务端
c: client 客户端
客户端:就是指客户端的应用程序,什么时候需要服务就去享受自己喜欢的服务
服务端:就是24小时都等待为别人服务或者都提供服务的一端
2,B/S 架构
s:server 服务器
b:browser 浏览器,也是一种客户端,只是这个客户端不需要大家去安装什么应用程序,
只需在浏览器上通过HTTP请求服务器端相关的资源(网页资源),
客户端Browser浏览器就能进行增删改查。
ps:微信支付宝都在做同一件事:同一接口
学习网络编程的目的,就是可以开发一个城市架构的软件
计算机之间为了更好的通信和更多的计算机进行链接数据交流,
就必须有一套公共的标准协议,才能使对方读懂你发的数据,或使更多的计算机去读取操作数据,
此时就必须要有一个公共的标准协议,即OSI协议,此协议只是其中一种
OSI 协议
应用层
表示层
会话层
传输层
网络层
数据链路层
物理连接层
1,物理连接层:网线,网卡,光缆....
就是传输高低电信号,即0110的一堆二进制数据
2,数据链路层:
1,规定电信号的分组方式
2,规定任何计算机都有一块网卡,这个网卡上面刻有世界上独一无二的编号
mac地址由12位16进制数 前6位是厂商编号 后6位是流水线编号
ps:以上两点合称为“以太网协议”
交换机:就是基于以太网协议通信,不能跨局域网通信
互联网:就是N多个局域网彼此之间连接而成
3,网络层
ip协议
规定了只要是接入互联网的计算机都必须有一个IP地址
ip地址特点:点分十进制
ip地址最小:0.0.0.0
ip地址最大:255.255.255.255
ip地址目前有两个版本:IPV4 IPV6(由于IPV4已经不够表示目前存在的计算机了 所以推出了IPV6版本)
IP地址是动态分配的
4,传输层
TCP\UDP都是基于端口工作的协议
端口(port)
计算机与计算机之间其实是计算机上的应用程序与应用程序之间的通信
端口:用来唯一标识一台计算机上的某个应用程序
端口号的范围:0~65535
注意:0~1024这些都是操作系统默认使用的端口号
建议:使用8000之后的端口
MySQL默认端口:3306
Redis默认端口:6379
django默认端口:8000
flask默认端口:5000
端口号是动态分配的
第一次起qq分配到的是8989
将qq关闭再次启动端口号可能就变了
TCP协议 :又称流式协议,或者可靠协议
基于TCP协议通信 必选先建立双向通道
三次握手四次挥手
客户端向服务端发送请求,这是第一次握手,在此之前客户端一直处于监听状态
服务端收到请求后给客户端回应,并将与之相对应的信息一起发生给客户端,第二次握手
PS: IP 地址:是唯一标识接入互联网的一台计算机
port端口:用来唯一标识一台计算机上应用程序
ip+port:就是唯一标识互联网一台计算机上的某个应用程序
应用层:协议有HTTP协议 FTP协议
知识点补充:
时间类型不能直接用json转化为字符串,会报错,必须自己手动转
import json
from datetime import datetime,date
# print(date.today()) 年月日
#isinstance 判断一个对象是否是某个类的实例
#issubclass 判断一个类是否是某一个类的子类 或子孙类
class MyJson(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')
else:
return super().default(self,o)
但是由于我自己定义了,所以优先查找自己的属性方法
即对父类中的default()方法进行了拦截
从而也证明了优先查找自己属性,再去查找父类,内置,
res = {'c1':datetime.today(),'c2':date.today()}
print(json.dumps(res,cls=MyJson))
转载于:https://www.cnblogs.com/Fzhiyuan/p/11312104.html
1网络编程OSI协议相关推荐
- (转)C#网络编程(订立协议和发送文件) - Part.4
源码下载:http://www.tracefact.net/SourceCode/Network-Part4.rar C#网络编程(订立协议和发送文件) - Part.4 文件传输 前面两篇文章所使用 ...
- windows网络编程——telnet协议
1.windows网络编程--telnet协议 Telnet是最老的Internet应用,起源于1969年的ARPANET,名字是"电信网络协议(TelecommuicationNetwo ...
- Day09: socket网络编程-OSI七层协议,tcp/udp套接字,tcp粘包问题,socketserver
今日内容:socket网络编程 1.OSI七层协议 2.基于tcp协议的套接字通信 3.模拟ssh远程执行命令 4.tcp的粘包问题及解决方案 5.基于udp协 ...
- Python30 网络编程通讯协议,1.学习网络编程的目的 2.什么是互联网 3.c/s结构 4.通讯基本要素 5.OSI模型...
今日内容: 网络通讯协议 1.学习网络编程的目的 2.什么是互联网 3.c/s结构 4.通讯基本要素 5.OSI模型 思维路线 目的是要链接互联网中的其他计算机 物理层 用物理介质链接其他计算机 数据 ...
- 网络编程——常用协议解析
** 1.网络基础知识 ** 1.1> 什么是OSI模型 OSI 模型(Open System Interconnection model)是一个由国际标准化组织?提出的概念模型,试图?供一个使 ...
- Python网络编程(OSI Socket)
文章目录 一.软件开发架构 二.网络编程简介 三.OSI七层协议 五.网络相关名词 八.Socket套接字 九.半连接池 十.黏包问题 一.软件开发架构 什么是软件开发架构?编写项目前需要遵循代码层面 ...
- JAVA零学习之基础归纳(十八)--网络编程、协议、IP、基本API、URL、socket等
[Java程序可以非常方便的访问互联网上的 HTTP服务.FTP服务等,并可以直接取得互联网上的远程资源,还可以向远程资源发送 GET.POST请求] 一.网络编程 1.1 网络概念和分类 所谓计算机 ...
- 第三十三篇,网络编程TCP协议通讯过程实现和函数接口
网络编程知识点概览 ======================================== 1.核心知识点 传输层的两个重要协议 tcp协议: ...
- 网络编程01-TCP协议(详)
目录 一.网络编程学习大纲 二.回顾系统编程中进程的通信方式 1. 管道 2.信号 3.IPC对象 三.网络编程(套接字编程) 1.特点 2.协议 3.历史 四.网络应用程序设计模式 1.C/S模式 ...
最新文章
- Dom对象、JavaScript对象、jQuery对象区别
- Java JUC工具类--CountDownLatch
- 攻击者滥用 Citrix NetScaler 设备 0day,发动DDoS放大攻击
- Python 源码剖析(二)—— 第一次修改 Python 源代码
- HBase海量数据高效入仓解决方案
- c语言erf函数,c/c++开发分享精确计算缩放互补误差函数,erfcx()
- Unity中配合EmmyLua的Lua使用方案
- 医学检验论文题目大全汇总
- Method_Confusion_Attack_on_Bluetooth_Pairing
- 51单片机智能温控风扇
- mysql几种性能测试的工具使用
- 杭电计算机线上复试,线上复试实锤?在线复试技巧拿走不谢!
- 2022春秋杯联赛 传说殿堂赛道 sql_debug题目解析
- 最新车载以太网解决方案
- oracle 数据泵 network link使用
- 基于Basys2的Booth乘法器的设计
- mysql 民族表_我国西北地区藏族.蒙古族等民族的藏传佛教格鲁派中心是( )。...
- 汇编语言随笔(12)-端口读写、shl和shr指令、检测点14和实验14
- 面向对象的三大特征(封装、继承、多态)
- TMMi02:SG和SP读书笔记
热门文章
- java todo error_Java全局异常处理(TODO)
- 从0到1上线一个微信小程序
- haproxy和keepalived的理解(转载)
- Cisco 2811 语音网关+callmanager拨打外线详解配置
- GoldenGate应用拓扑结构(三)
- 每天一个linux 命令 find命令
- CI框架 -- URL
- 【Cloud Foundry 应用开发大赛】“八卦街”图片采集应用
- 运维自动化之使用PHP+MYSQL+SHELL打造私有监控系统(四)
- web管理 pdo-mysql_PHP重新安装启用PDO扩展和PDO_MySQL扩展