zoukankan      html  css  js  c++  java
  • 网络编程(一)

    网络编程(一)

    一 网络架构

    单机架构

    ​ 应用领域

    ​ 植物大战僵尸; office

    cs架构

    ​ 1.用户操作系统安装客户端;产商操作系统部署服务端

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

    应用领域

    ​ QQ; 大型网络游戏

    服务端(server):

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

    客户端(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

    我把月亮戳到天上 天就是我的 我把脚踩入地里 地就是我的 我亲吻你 你就是我的
  • 相关阅读:
    【Node.js】Jade视图模板的使用
    【Node.js】新建一个NodeJS 4.X项目
    【Node.Js】npm国内被墙的解决方法
    【AngularJS学习笔记】Java Script "use strict" 严格模式
    【Linux学习笔记】Linux-CentOS下安装Redis
    【Linux学习笔记】常用命令速记
    【AngularJS学习笔记】封装一些简单的控件(封装成Html标签)
    数组和切片1
    Go错误处理机制及自定义错误
    内置函数
  • 原文地址:https://www.cnblogs.com/zhulipeng-1998/p/12863938.html
Copyright © 2011-2022 走看看