网络编程(一)

目录mysql

网络编程(一)

一 网络架构

单机架构

​ 应用领域sql

​ 植物大战僵尸; officemongodb

cs架构

​ 1.用户操做系统安装客户端;产商操做系统部署服务端数据库

​ 2.每一个用户都须要独立安装软件,服务端升级也要每一个用户升级编程

应用领域浏览器

​ QQ; 大型网络游戏网络

服务端(server):架构

​ 统一管理数据库的主机中的软件就叫作服务端,再后来 服务端不仅是管理数据,外加处理业务逻辑.(24小时不间断提供服务)socket

客户端(client):学习

​ 用户安装的软件;(若是想要服务,随时均可以去寻找服 务享受)

优势:

​ 软件使用稳定,而且能够节省网络资源;

缺点:

​ 1.若用户想在赞成设备上使用使用多个软件,必须下载多个客户端;

​ 2.软件的每一次更新,客户端也必须跟着重新下载更新.

BS架构

b/s架构

​ browser: 浏览器(客户端)

​ server: 服务端

应用领域

​ 例如浏览器,直接输入域名,获得你想要的......

优势:

​ 以浏览器充当客户端,无需用户下载多个软件,也无需用户下载更新 版本

缺点:

​ 消耗网络资源过大,当网络不稳定时,软件的使用也会不稳定.

二 网络编程发展史

​ 全部网络编程的先进技术都是源于军事,但愿经过远程获取数据,因此出现了"网络编程".

早期如何实现远程通讯:

​ --打电话--->电话线

​ --纯平电脑(大屁股电脑)---> 网线,有线网卡

​ --笔记本电脑-->有线网卡,无线网卡

实现远程通讯的必须具有:

1.物理链接介质---->网卡....

2.互联网协议

-人与人之间沟通的介质:中文,英文

-计算机之间沟通的介质:'互联网协议"

互联网协议

互联网协议又称为七层协议,OSI七层协议,OSI是一个世界标准组织

OSI七层协议:

--应用层

--表示层

--会话层

--传输层

--网络层

--数据链路层

--物理链接层

学习由下到上:

须要优先了解的一共五层:

==物理链接层==

​ 基于电信号发送二进制的数据0101010111.

​ 010: 你 you

​ 101: 我 l

==数据链路层==

​ 数据链路层的"以太网协议",专门处理基于电信号发送二进制的数 据

​ 以太网协议

​ 1.规定好电信号数据的分组方式.

​ 2.每一台链接网线的电脑都必需要有一块"网卡"

​ 3.网卡由不一样厂商生产的,每块网卡都会有世界上独一无二12位 的编号"mac"地址;前六位:厂商号,后六位:流水号

​ 4.交换机:可让多台电脑链接到一块儿.

​ 基于以太网协议发送数据:

​ 特色:广播,单播

​ 弊端:广播风暴,不能跨局域网通讯

​ 5.互联网:让局域网之间进行通讯.

==网络层==

​ IP地址: 用于标识惟一的一台计算机(局域网)的地址

​ IP: 点分十进制

​ 最小值: 0.0.0.0

​ 最大值: 255.255.255.255

​ IPV4(了解):一开始用电脑的人很少,因此出现IPV4的协议版本

​ IPV6(了解):回环地址 127.0.0.1--->localhost

==传输层==

​ TCP/UDP协议,他们都是基于端口工做的.

​ 端口号:标识电脑上某一个软件.

​ 端口号范围:0-65535

​ ==注意==:

​ 1.操做系统中,通常0-1024的端口都被默认使用了(0-1024)不要动

​ 2.尽可能使用8000后的端口号:

​ 开发中经常使用软件的默认端口号(==重要==):

​ mysql: 3306

​ mongodb: 27017

​ Django: 8000

​ Tomcat: 8080

​ Flask: 5000

​ Redis: 6379

若想要服务端与客户端进行通讯,必需要创建链接,产生双向通道.

​ 一条是客户端往服务端发送消息的.

​ 另外一条是服务端往客户端发送消息的.

==应用层==

​ http

​ ftp

==小结==:

​ IP:用于惟一标识某一台计算机的位置

​ port:端口用于确认计算机的一个应用软件.

​ IP + port:世界上某一台电脑的一个应用软件

TCP协议工做原理:

TCP是一个流式协议

三次握手,四次挥手:

三次握手创建链接

创建双向通道,创建好链接.

listen:监听

established:确认请求创建链接

发送数据

write

read

客户端王服务端发送数据,数据存放在内存中,须要服务端确认收到,数据才会在内存中释放掉.不然,会隔一段时间发送一次,让服务端返回确认收到.

在一段时间内,若服务端仍是不返回确认收到,则取消发送.并释放内存中的数据

四次挥手断链接

TIME_WAIT:时间等待

socket

什么是socket

socket是一个模块,能够写一套c/s架构的套接字.

为何要使用socket?

socket套接字会封装好各层协议的工做

好处:能够节省开发成本

如何使用

import socket

==注意==:客户端与服务端必须遵循:

一段send,另外一端recv

不能两端同时send或recv

相关文章
相关标签/搜索