单例补充和网络编程(理论)

单例补充和网络编程(理论)



# classmethod 单例模式
# class Singleton:
#
#     __instance = None
#
#     @classmethod
#     def singleton(cls):
#
#         if not cls.__instance:
#
#             cls.__instance = cls()
#
#         return cls.__instance


# __new__:
# class Singleton:
#
#     __instance = None
#
#     def __new__(cls, *args, **kwargs):
#
#         if not cls.__instance:
#
#             # 造一个空对象
#             cls.__instance = object.__new__(cls)
#
#         return cls.__instance
#
#
# obj1 = Singleton()
# obj2 = Singleton()
# obj3 = Singleton()
# print(obj1)
# print(obj2)
# print(obj3)

网络编程

软件开发架构:

c/s架构:Client:客户端 Server:服务端

比如:微信,qq客户端

优点:

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

缺点:

安装麻烦,用户体验差

软件的每一次更新,用户都需要重新下载或更新版本

b/s架构: Browser:(本质上也是一个客户端):浏览器

Server:服务器

比如浏览器上输入一个网址

优点:软件使用方便,无需根治软件更新去下载

缺点:

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

比较流行:b/s架构,用户体验好

客户端与服务端

服务端:24小时不间断提供服务。

客户端:客户想要找服务,就会访问浏览器(比如微信小程序)

三 往后学习的脉络 - 学习网络编程, 并发编程, 数据库 ----》 可以开发一套 C/S架构的软件。

- 学习前端(html/css/js), web框架(Django) ----》 可以开发一套 B/S架构的软件。


语言是人与人之间沟通的介质

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


网络编程:

如何实践远程通信---》物理链接介质 电话---》电话线

纯屏电脑---》网线

笔记本电脑---》网线,网卡


电脑与电脑的通信:互联网协议

让所有生产商的电脑都遵循这套协议,实现所有电脑之间无照爱通信

互联网协议是计算机界的语言

 

互联网协议(OSI七层协议):

       - OSI七层协议:
           - 应用层
           - 会话层
           - 表示层
           - 传输层
           - 网络层
           - 数据链路层
           - 物理层

       - 此时需要关注的是5层: 由下到上记

           - 应用层
           - 传输层
           - 网络层
           - 数据链路层
           - 物理层



           - 1)物理层:
               - 获取到对象计算机的电信号数据
               0101010111
               010:
               1011:
               101:

               问题: 无法获取具体数据内容,将电信号数据扔给数据链路层

           - 2)数据链路层:
               - 我要知道数据是什么?
               - 我要知道数据是给谁的?

               - “以太网协议”:
                   1)规定一套分组的方式:
                       获取电信号真实数据。

                       电信号是一个数据包。

                       head: 18个字节
                           - 6: 发送者
                           - 6: 接收者
                           - 6: 数据类型

                       data:
                           - 电信号具体的数据

                   2) 每一台电脑必须要有一个网卡(电脑插入网线的地方):
                       - 每一块网卡都会有一串世界上独一无二的数字:
                           - 12位16进制的数字,称之为 "mac地址" :
                               - 前6位: 产商号
                               - 后6位: 流水号

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

               “以太网协议”:
                   - 工作的方式:
                       - 单播:
                       - 广播:

                       缺点:
                           - 广播风暴
                           - 只能在局域网内实现通信, 无法跨局域实现通信
               总结:
                   - mac地址: 标识全世界上一台独一无二的计算机。

           3) 网络层:
               - 实现全世界某一台计算之间的通信

               - ip地址(ip协议):
                   - 点分十进制的数字组成
                       - 180.101.49.11
                       - 最小范围: 0.0.0.0
                       - 最小范围: 255.255.255.255

                   - ip的版本:
                       - IPV4:
                       - IPV6:

                   - ip的作用:*******
                       用于表示全世界某一台计算机的位置,局域网的位置。
               总结:
                   ip地址 + mac地址:*******
                       标识全世界某一个局域网内的,某一台计算机。


           4) 传输层:
               tcp与udp都是基于 “端口” 实现通信的。
                   - TCP协议:
                   - UDP协议:

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

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

           总结:
               mac地址 + ip地址 + port端口:
               标识的是全世界范围内某一个局域网内某一台计算机上的某一个软件。


           5) 应用层:
               - 大佬们定制好的一套牛X的协议
                   - http协议
                   - ftp协议

               - 自定义的协议

 

 

posted @ 2019-12-04 16:21  迎着阳光  阅读(468)  评论(0编辑  收藏  举报