day 26 网络编程
01.软件开发架构
开发软件,必须要开发一套客户端与服务端
服务端;24小时不间断提供服务
客户端;用户使用,寻找服务端,获取服务
软件开发架构;
C/S架构;
Client;客户端
Server;服务端
优点;软件的使用稳定,并且可以节省网络资源
缺点;
若用户想在同一个设备上使用多个软件,必须下载多个客户端
软件的每一次更新,客户端也必须跟着重新下载更新
C/S架构软件;
电脑上的QQ、Pycharm等,移动端的微信、天猫等。。。
B/S架构;
Browser;浏览器
Server;服务端
优点;
以浏览器充当客户端,无需下载多个软件
也无需版本更新,直接在浏览器上访问需要使用的软件
缺点;
消耗网络资源过大,当网络不稳定时,软件的使用也不稳定
B/S架构的软件;
在浏览器(客户端)上输入某个域名比如京东(https://www.jd.com )
02.网络编程
网络编程发展历史;
所有先进技术都来自军事,通过远程获取数据,所以出现了‘网络编程’。
早期如何实现远程通信;
打电话——>电话线
电脑——>网卡——>网线
笔记型电脑——>无线网卡——>移动网络
要实现远程通信必须具备;
物理连接介质;网卡
互联网协议;计算机与计算机沟通的介质,相当于计算机之间说话的语言
互联网协议
互联网协议又称之为网络七成协议
OSI七层协议;数据传输从上到下运行,接收则从下往上运行
应用程
表示层
会话层
传输层
网络层
数据链路层
物理连接层
物理连接层;基于电信号发送二进制的数据
数据链路层;‘以太网协议’专门处理基于电信号发送到二进制数据
以太网协议;
规定好的数据分组方式
每一台连接网线的电脑都必须要由一有‘网卡’
每一块网卡都拥有世界上独一无二的编号
前六位;场上编号
后六位;流水线号
交换机;可以让多台电脑连接到一起
以太网;广播,单播;
弊端;广播风暴、不能跨局域网通信。
互联网;让局域网之间可以通信
网络层;
IP地址;用于唯一标识计算机(局域网)的地址
IP地址;点分十进制
最小值;0.0.0.0
最大值;255.255.255.255
IPv4;一开始用电脑人数少时,出现的协议版本,地址长度为32位
IPv6;用来扩展IPv4,地址长度为128位,允许协议进行扩充
本机IP;回环地址 :127.0.0.1——>localhost
传输层;
TCP/UDP协议;他们都是基于端口
端口号;表示电脑上的某一个软件,相当于软件的IP地址
端口号范围;0~65535
操作系统中;一般0~1024的端口都被默认使用了(尽量不要动),推荐尽量使用8000之后的端口号
开发中常用软件的默认端口号
mysql;3306
nibgidb;27017
Django;8000
Toncat;8080
Flask;5000
Redis;6379
若想服务端与客户端进行通行,必须建立连接,产生两条管道
一条是客户端往服务端发送消息的
一条是服务端往客户端发送消息的
TCP协议的工作原理;TCP协议是流式协议
反馈机制;(正反相同)
客户端往服务端发送消息(存放于内存中),服务端接收到消息后,必须要给客户端返回一个确认收到。
否则客户端会在某个时间段内,不停的发送,超过该时间释放内存,删掉该信息。
三次握手;建连接
发送链接请求
发送收到该请求,发送同意该请求
发送收到已同意请求
发送数据
write
read
四次挥手;断连接
发送断开链接请求
发送收到该请求
TIME_WAIT;等待时间
确认再没有消息传来,发送同意该请求
发送收到已同意请求
应用层
http
ftp
03.Socket
Socket在python中是一个模块,可以写一套C/S架构的套接字。
Socket套接字会封装好隔层协议的工作,可以节省开发成本。
import socket # socket为python内置模块
posted @
2019-10-17 21:37
🍞面包🍞
阅读(
143 )
评论()
收藏
举报