网络编程
Posted xuzhaolong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络编程相关的知识,希望对你有一定的参考价值。
import json
from datetime import datetime,date
不能直接序列化 因为字典里面不全是字符串
res = 'c1':datetime.today(),'c2':date.today()
print(json.dumps(res))
res = 'c1':str(datetime.today()),'c2':str(date.today()) # 手动转成子符传
print(json.dumps(res)) # "c1": "2019-08-06 20:57:04.649601", "c2": "2019-08-06"
NX 方法
json.JSONEncoder
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)
res = 'c1':datetime.today(),'c2':date.today()
print(json.dumps(res,cls=MyJson))
网络编程
软件开发架构
c/s架构
c:客户端 clienf
s:服务端 srever
b/s结构
b:浏览器 browser
s:服务器 server
? ps bs结构本质也是cs结构
? 手机端看上去cs结构比较火,实际上bs已经在崛起
? 微信支付宝都在做一件事 : 统一接口
? 手机端之后肯定也是bs比较火
服务端: 24小时不间断提供服务
客户端:什么时候想体验服务,就去找心仪的服务端去寻求服务
学习网络编程 就可以开发一个cs架构的软件
并发 数据 前端 django 就可以开发一个bs架构的软件
网络编程的发展史
? 任何先进的技术最早都来源于军事
回到过去
1 早期的电话 电话线 和中介
2 大屁股电脑 网线
3 笔记本电脑 无线电话 网卡
要想实现远程通信第一个需要具备的条件是: 物理连接介质
人要想实现无障碍交流必须说统一的语言 >>>>> 就出现了统一的语言 英语
计算机之间要想实现远程通信 除了有物理介质之外还需要有一套公共的标准/协议
OSI协议
OSI七层协议
应用层
表示层
会话层
传输层
网络层
数据链路控制
物理连接层
OSI五层协议
应用层
传输层
网络层
数据链路层
物理连接层
物理连接层
基于电型号传输01010101010二进制数据数据链路层
- 规定了电信号的分组方式
- 规定了任何一台接入互联网的计算机都必须有一块网卡
每一块网卡上面都刻有世界上独一无二的编号
? 编号 规则 12位16进制数
? 前6位是厂商编号
? 后六位是流水线编号
? 我们管这12位数叫mac地址(类似于我们的身份证号)
? ps 以上连点合称为"以太网协议"
交换机
基于以太网协议通信
不能跨局域网通信互联网室友N多个局域网彼此之间连接而成的
网络层
IP协议
规定了只要是介入互联网的计算机都比西有一个IP地址
IP地址特点:点分十进制
ip地址最小 0.0.0.0
ip地址最大 255.255.255.255
IP地址目前有两个版本 IPV4 IPV6(由于IPV4已经不够表示目前存在的计算机了 所以推出了IPV6)
ip地址是动态分配的
路由器 实现局域网之间的互联
传输层
TCP\UDP协议 都是基于端口工作的协议
端口(port)
端口 作用 同来唯一标识一台计算机上的某个应用程序
端口号范围 0 - 65535
注意 通常 0-1024 都是操作系统默认使用的端口号
建议 使用8000之后的端口
常用软件 端口号
mysql默认端口 3306
Redis默认端口 6379
django默认端口 8000
flask默认端口 5000
一台机器的端口号是动态分配的
第一次使用QQ分配到的端口号 是8989 将QQ关闭关闭再启动端口号可能就变了
计算机之间的通信其实就是计算机上的应用程序之间的通信
总结
ip地址 用来唯一标识介入互联网的一台计算机
port端口 用来唯一标识一台计算机上的应用程序
ip + port 唯一表示接入互联网一台计算机上的某个应用程序
应用层
HTTP协议
FTP协议
TCP协议
? 流式协议 可靠协议
? 基于TCP协议通信 必选先建立双向通道
? TCP协议传输数据之所以可靠的原因就在于有双向通道???? 不对的
? 对方说了东西后必须得到反馈 否则一段时间内会一直发 还不回复 他会默认认为你宕机了
- 三次握手 四次挥手
- 三次握手建连接
- 四次挥手断连接
以上是关于网络编程的主要内容,如果未能解决你的问题,请参考以下文章