面向过程补充 网络编程 #27

day27网络编程开始,面向过称补充

1..知识点补充
  1.json知识点扩展.,不支持类型,自定义转化.py

 1 """"""
 2 """
 3 知识点补充:
 4 """
 5 
 6 """
 7 from datetime import datetime,date
 8 # 1.年月日,时分秒
 9 print(datetime.today())   #2019-08-06 15:30:46.306446
10 # 2.年月日
11 print(date.today())  #  2019-08-06
12 """
13 """
14 import json
15 from datetime import datetime,date
16 res = {'c1':datetime.today(),'c2':date.today()}
17 print(json.dumps(res))
18 """
19 
20 """
21 TypeError: Object of type 'datetime' is not JSON serializable
22 类型错误:“datetime”类型的对象不是可序列化的JSON
23 """
24 
25 """
26 import json
27 from datetime import datetime,date
28 res = {'c1':datetime.today,'c2':date.today()}
29 print(json.dumps(res))
30 """
31 """
32 TypeError: Object of type 'builtin_function_or_method' is not JSON serializable
33 类型错误:“builtin_function_or_method”类型的对象不可JSON序列化
34 """
35 import json
36 import time
37 from datetime import datetime,date
38 class MyJson(json.JSONEncoder):
39     def default(self, o):
40         if isinstance(o,datetime):
41             return o.strftime('%Y-%m-%d %X')
42         elif isinstance(o,date):
43             return o.strftime('%Y-%m-%d ')
44         elif isinstance(o,time.localtime()):
45             return o.localtime()
46 
47         else:
48             return super().default(self,o)
49 # res = {'c1':datetime.today(),'c2':date.today()}
50 # print(json.dumps(res,cls=MyJson))   # {"c1": "2019-08-06 16:42:36", "c2": "2019-08-06 "}
51 ret = time.localtime()
52 print(json.dumps(ret,cls=MyJson))
1.json知识点扩展

2.网络编程
  1.软件开发架构

 1 1.软件开发架构
 2     c/s架构(client/server)
 3         c:客户端
 4         s:服务器
 5     b/s架构(browser/server)
 6         b:浏览器
 7         c:服务器
 8        ps:b/s架构本质也是c/s架构
 9    手机端看上去c/s比较火,实际上b/s已经崛起
10    微信支付宝都在做一件事:统一接口
11    手机端之后肯定也是b/s比较火
12 
13    服务端24小时服务:
14    服务端什么时候想体验服务就去找心仪的服务器体验
1.软件开发架构

  2.学习网络编程的目的

1 学习完网络编程 的目的:
2     1.就可以开发一个c/s架构的软件
3     2.(之后学习)并发 数据库 前端 Django 就可以开发一个b/s架构的软件
2.学习网络编程的目的

  3.网络编程的发展史

 1 1.网络编程的发展史:
 2     任何先进的技术最早都来源于军事
 3 
 4 2.回到过去
 5     1.早期的电话             电话线  要求:1.物理连接介质  2.统一的语言
 6     2.大屁股电脑             网线    要求:1.物理连接介质  2.统一的语言
 7     3.笔记本电脑  无线电话   网卡    要求:1.物理连接介质  2.统一的语言
 8 
 9 3.总结:
10     计算机与计算机之间要想实现远程通信
11         1.除了有物理介质
12         2.还需要一套公共的标准或者协议 --OSI
3.网络编程的发展史

3.OSI协议
  1.OSI七层架构

 1 OSI七层协议
 2     应用层
 3     表示层
 4     会话层
 5     传输层
 6     网络层
 7     数据链路层
 8     物理连接层
 9 
10     应用层,表示层,会话层可精简为应用层,产生  OSI五层结构
11     辅助记忆:应表会传网数物
OSI7层架构

  2.OSI简化为五层架构

 1 OSI精简版: 5层
 2         应用层
 3         传输层
 4         网络层
 5         数据链路层
 6         物理连接层
 7 
 8 2.详细:
 9     1.物理连接层
10         基于电信号传输010101001010二进制数据
11 
12     2.数据链路层
13         1.规定了电信号的分组方式
14         2.规定了任何一台接入互联网的计算机都必须有一块网卡
15             网卡特点:
16                 1.每一块网卡上都刻有独一无二的编号:
17                 12位-16位进制数
18                 前6位是厂商编号
19                 后6位是流水线编号
20             我们称这为mac地址
21                 (mac地址:MAC地址(Media Access Control Address),直译为媒体访问控制地址,也称为局域网地址(LAN Address),以太网地址(Ethernet Address)或物理地址(Physical Address),它是一个用来确认网上设备位置的地址)
22             ps:以上两点合称以太网协议:
23 
24             1.交换机:
25             2.基于以太网协议通信:
26                 特点:通信基本靠吼
27             3.互联网是有N多个局域网彼此之间连接而成的
28 
29     3.网络层:
30         IP协议
31         规定了只要接入互联网都必须具备一个IP地址:
32         IP地址特点:点分十进制
33         IP地址最小:0.0.0.0
34         IP地址最大:255.255.255.255
35         ip地址目前有两个版本:IPV4,IPV6(由于IPV4已经不够表示目前存在的计算机,所以IPV6应用而生)
36 
37         ip地址是动态分布的
38 
39     4.传输层
40     TCP / UDP 都是基于端口工作的协议
41     端口(port)
42 
43     计算机与计算机之间其实是应用程序与应用程序之间的通信
44     端口:用来唯一标识一台计算机上的某个应用程序
45         端口号的范围:0-65535
46         注意0-1024这些都是操作系统使用的端口号
47         建议:使用8000以后的端口
48         Mysql默认端口:3306
49         Redis默认端口:6379
50         Django默认端口:8000
51         flask默认端口:5000
52 
53         端口号是动态分配的,
54         例如:第一次起qq分配的8989
55         将QQ关闭再次启动端口号可能就变了
56 
57         总结:
58             ip地址,用来唯一标识接入互联网的一台计算机
59             port端口,用来唯一标识一台计算机上的某个应用程序
60             ip+port : 唯一标识接入互联网的一台计算机上的某个应用程序
61 
62     5.应用层:
63         域名https(s:安全认证)://www.baidu.com
64         HTTP协议
65         FTP协议  Django学
OSI5层结构

4.TCP协议
  1.TCP协议

 1 1.TCP协议
 2     流式协议,可靠协议
 3     (TCP可靠的原因:他有反馈机制,发送消息后,对方必须回复确认,才会将内存从数据中清空,否则,在限定的时间内,每隔一段时间会重新发送一次)
 4     基于TCP协议通讯,必需先建立双向通道
 5 
 6     三次握手四次挥手
 7 
 8     三次握手建连接
 9     必需先建立双向通道
10 
11     四次挥手断连接
12     中间两步不能合并
13 
14     黑客洪水攻击:
15     服务器在同一时间接到大量请求
图示补充
1 1.TCP协议
2     流式协议,可靠协议
3     基于TCP协议通讯,必需先建立双向通道
4 
5     三次握手四次挥手
6 
7     三次握手建连接
8 
9     四次挥手断连接
1.1.TCP协议

1.2.三次握手四次挥手



三次握手建连接



四次挥手断连接


  2.案例 星轨.py
1.网络编程

  1 网络编程:
  2 1.软件开发架构
  3     c/s架构(client/server)
  4         c:客户端
  5         s:服务器
  6     b/s架构(browser/server)
  7         b:浏览器
  8         c:服务器
  9        ps:b/s架构本质也是c/s架构
 10    手机端看上去c/s比较火,实际上b/s已经崛起
 11    微信支付宝都在做一件事:统一接口
 12    手机端之后肯定也是b/s比较火
 13 
 14    服务端24小时服务:
 15    服务端什么时候想体验服务就去找心仪的服务器体验
 16 
 17    学习完网络编程 就可以开发一个c/s架构的软件
 18    并发 数据库 前端 Django 就可以开发一个b/s架构的软件
 19 
 20 2.网络编程的发展史:
 21     任何先进的技术最早都来源于军事
 22 
 23 3.回到过去
 24     1.早期的电话             电话线  要求:1.物理连接介质  2.统一的语言
 25     2.大屁股电脑             网线    要求:1.物理连接介质  2.统一的语言
 26     3.笔记本电脑  无线电话   网卡    要求:1.物理连接介质  2.统一的语言
 27 
 28     计算机与计算机之间要想实现远程通信除了有1.物理介质 还需要2.一套公共的标准或者协议 --OSI
 29 
 30 4.OSI七层协议 - 精简为 五层协议
 31     应用层
 32     表示层
 33     会话层
 34     传输层
 35     网络层
 36     数据链路层
 37     物理连接层
 38 
 39     精简版: 5层
 40         应用层
 41         传输层
 42         网络层
 43         数据链路层
 44         物理连接层
 45     1.物理连接层
 46         基于电信号传输010101001010二进制数据
 47     2.数据链路层
 48         1.规定了电信号的分组方式
 49         2.规定了任何一台接入互联网的计算机都必须有一块网卡
 50             网卡特点:
 51                 1.每一块网卡上都刻有独一无二的编号:
 52                 12位-16位进制数
 53                 前六位是厂商编号
 54                 后六位是流水线编号
 55             我们称这为mac地址
 56             ps:以上两点合称以太网协议:
 57 
 58             1.交换机:
 59             2.基于以太网协议通信:
 60                 特点:通信基本靠吼
 61             3.互联网是有N多个局域网彼此之间连接而成的
 62 
 63     3.网络层:
 64         IP协议
 65         规定了只要接入互联网都必须具备一个IP地址:
 66         IP地址特点:点分十进制
 67         IP地址最小:0.0.0.0
 68         IP地址最大:255.255.255.255
 69         ip地址目前有两个版本:IPV4,IPV6(由于IPV4已经不够表示目前存在的计算机,所以IPV6应用而生)
 70 
 71         ip地址是动态分布的
 72 
 73     4.传输层
 74     TCP / UDP 都是基于端口工作的协议
 75     端口(port)
 76 
 77     计算机与计算机之间其实是应用程序与应用程序之间的通信
 78     端口:用来唯一标识一台计算机上的某个应用程序
 79         端口号的范围:0-65535
 80         注意0-1024这些都是操作系统使用的端口号
 81         建议:使用8000以后的端口
 82         Mysql默认端口:3306
 83         Redis默认端口:6379
 84         Django默认端口:8000
 85         flask默认端口:5000
 86 
 87         端口号是动态分配的,
 88         例如:第一次起qq分配的8989
 89         将QQ关闭再次启动端口号可能就变了
 90 
 91         总结:
 92             ip地址,用来唯一标识接入互联网的一台计算机
 93             port端口,用来唯一标识一台计算机上的某个应用程序
 94             ip+port : 唯一标识接入互联网的一台计算机上的某个应用程序
 95     5.应用层:
 96         域名https(s:安全认证)://www.baidu.com
 97         HTTP协议
 98         FTP协议  Django学
 99 
100 5.TCP协议
101     流式协议,可靠协议
102     基于TCP协议通讯,必需先建立双向通道
103 
104     三次握手四次挥手
105 
106     三次握手建连接
107 
108     四次挥手断连接
109 
110 6.星轨.-明星出轨
网络编程-笔记

readme

1 网络编程 2-3
2 并发编程 4-5
3 数据库(Mysql) 5d
4 优酷项目 3
5 考试 1
6 前端 7
7 Django 10
8 bbs  5
9 crm 5
readme
原文地址:https://www.cnblogs.com/llx--20190411/p/11311242.html