• 网络编程


    单例模式补充

     1 # 方式一
     2 class Singleton:
     3     __instance = None
     4 
     5     @classmethod
     6     def singleton(cls):
     7         if not cls.__instance:
     8             obj = cls()
     9             cls.__instance = obj
    10         return cls.__instance
    11 
    12 
    13 # 方式二
    14 class Singleton:
    15     __instance = None
    16 
    17     def __new__(cls, *args, **kwargs):
    18         if not cls.__instance:
    19             cls.__instance = object.__new__(cls)
    20         return cls.__instance
    21 
    22 
    23 obj1 = Singleton()
    24 obj2 = Singleton()
    25 obj3 = Singleton()
    26 print(obj1)
    27 print(obj2)
    28 print(obj3)

    一、软件开发架构

    1.C/S 架构

    Client(客户端)— Server(服务端)

    程序需要安装后,才能运行在用户的电脑上,对用户的电脑操作系统环境依赖较大

    优点:

      软件使用稳定;节省网络资源

    缺点:

      安装麻烦,用户体验差;软件的每次更新,用户都需要重新下载或更新版本

    2.B/S架构

    Browser(浏览器,本质是也是一个客户端)— Server(服务端)

    只需要在浏览器上通过HTTP请求服务服务器端相关的资源(网页资源),客户端浏览器就能进行增删改查

    优点:

      软件的使用方便;无需跟着软件的更新去下载

    缺点:

      如果网络不稳定,软件的使用就不稳定

    ps:目前比较流行的架构是B/S架构,因为其用户体验高

      客户端与服务端:

        服务端就是24小时不断提供服务

        客户端就是想要找服务时,就去访问服务端

    二、互联网协议(OSI七层协议)

    协议是计算机与计算机之间沟通的介质

     1.物理层:

    物理链接介质,传递电信号

    2.数据链路层

      我要知道数据是什么?数据是给谁的?

    基于以太网的通信方式(以太网协议):

    ⑴规定一套分组的方式:获取电信号真实数据,电信号是一个数据包

      head:18个字节(6个表示发送者-6个表示接受者-6个表示数据类型)

      data:电信号具体的数据

    ⑵网卡:电脑插入网线的地方

    每块网卡都有一串世界上独一无二的数字,是12位的16进制数字,称为“mac地址”(前6位:产商号-后6位:流水号)

    mac地址作用:标识全世界上一台独一无二的计算机

    以太网工作方式:单播和广播

    缺点:广播风暴;只能在局域网内实现通信,无法跨局域实现通信

     小结:mac地址:标识全世界上一台独一无二的计算机

    3.网络层

    实现全世界某一台计算机之间的通信

    基于IP地址的通信方式(ip协议):

    由点分十进制的数字组成,最小范围:0.0.0.0,最大范围255.255.255.255

    ip版本:IPV4、IPV6

    ip的作用:

      用于表示全世界某一台计算机的位置,局域网的位置

    小结:IP地址+mac地址:标识全世界某一个局域网内的,某一台计算机

    4.传输层

    主要是软件与软件之间进行通信

    基于tcp/udp的通信方式(tcp/udp协议):

    tcp与udp都是基于端口实现通信的

    port端口:用于标识计算机中某个独一无二的软件

    小结:IP地址+mac地址+port端口:标识全世界某一个局域网内某一台计算机上的某一个软件

    5.应用层

    由自定义协议(http,ftp)

  • 相关阅读:
    js伪数组转数组
    前端解决跨域几种方式
    mac 下node,yarn安装及版本切换
    如何给一个数组对象去重
    cookie、session、sessionStorage 、localStorage 区别
    moment.js 时间戳转换
    tp框架,addAll方法报错,返回false
    js获得 json对象的个数(长度)
    php 魔术方法和魔术常量
    js 对象的创建方式和对象的区别
  • 原文地址:https://www.cnblogs.com/hexianshen/p/11983069.html
Copyright © 2020-2023  润新知