• 初识网络编程


    ---恢复内容开始---

    1.修改json可以序列化的数据类型,用于继承去修改,具体看操作:

    import json
    from datetime import datetime,date
    
    
    
    class MyJson(json.JSONEncoder):
        def default(self, o):
            if isinstance(o,datetime):
                return o.strftime('%Y-%m-%d %X')
            elif isinstance(o,date):
                return o.strftime('%Y-%m-%d')
            else:
                return super().default(self,o)
    
    res = {'a': datetime.today(),'b':date.today()}
    print(json.dumps(res,cls=MyJson))
    View Code

     网络编程:

      c/s架构(client/server):客户端与服务端

      b/s架构(browser/server):浏览器与服务器

     服务端:

      24小时不间断的提供服务

    客户端:

      在有需要的时候去找服务器

    网络编程的发展史:

    任何先进的技术都是来源于军事

    要想实现远程通信第一个具备的条件就是:物理连接介质

    计算机与计算机之间要想实现通讯除了要有物理链接介质还要有一套公共的规范/协议。

    OSI七层模型:

    应用层

    表示层

    会话层

    传输层

    网络层

    数据链路层

    物理连接层

    物理连接层:

      基于电信号传输010101的二进制数据

    数据链路层:

      1.是规定了电信号的分组方式

      2.规定了每台连接入互联网的计算机都必须配有网卡。

        网卡上刻有世界上独一无二的编号

        12位16进制

        前6位厂家编号

        后6位流水线编号

        称为mac地址

       ps:将上面2点简称为以太网协议

    交换机:

      基于以太网进行通信

      不能跨局域网通信

    互联网是由n个局域网彼此链接而成的。

    网络层

      IP协议

      规定了每台连接入互联网的计算机必有一个ip地址

      特点:点分十进制

      ip地址最小:0.0.0.0

      ip地址最大:255.255.255.255

      2个版本:IPv4,IPV6,为什么呢,因为ipv4用光了

      ip地址是动态分配的。

      ip地址是唯一标识一台连接入互联网的计算机

    传输层:

      TCP/UDP都是基于端口工作的传输协议

      计算机与计算机之间其实是计算机上的应用程序与应用程序之间的通信

      端口:用来唯一标识一台计算机上的某个应用程序。

      端口的范围:0--65535

      0到1024是操作系统默认要使用的

      建议使用8000后面的因为8000前面的可能有应用程序以及使用了,所以最好8000后面的不起冲突。

      mysql 3306

      redis 6379

      django 8000

      flask 5000

      IP+端口:用来唯一标识一台连接入互联网的计算机上的某个应用程序

      端口号是动态分配的

    TCP协议:

    也称流式协议,可靠协议

    为什么说是可靠协议,因为tcp协议有个反馈机制,就是发送数据后必须要有响应,如果没有,不会先删除内存的数据,会在一定的时间内每个一段时间发送一次。等得到响应后才会将内存的数据清除。

    三次握手建立连接

    三次握手的过程实际上实在确认我发的你能收到,你发的我也能收到,从而保证数据传输的的可靠性,

    链接是一个虚拟的概念,不实际存在,只要三次握手成功即表示连接建立成功!

    问题是三次握手时的确能保障数据传输是可靠的,那么握手后的数据传输要如何保证传输成功呢?

    TCP协议要求在发送数据后,必须接收到对方的回复信息才能确认数据成功发送,如果一段时内没有收到回复信息,会自动重新发送,如果重试的次数过多则表示链接可能已经中断!

    四次挥手断开连接:

    四次挥手的目的是保证双方的数据传输已经全部完成,同样是为了保证数据的完整性

    总结

    其优点很明显:能够保证数据传输是完整的

    缺点:由于每次都需要传输确认信息,导致传输效率降低

    场景:多用于必须保证数据完整性的场景,例如文本信息,支付信息等!

    ---恢复内容结束---

  • 相关阅读:
    Atitit.ati orm的设计and架构总结 适用于java c# php版
    Atitit.ati dwr的原理and设计 attilax 总结 java php 版本
    Atitit.ati dwr的原理and设计 attilax 总结 java php 版本
    Atitit. 软件设计 模式 变量 方法 命名最佳实践 vp820 attilax总结命名表大全
    Atitit. 软件设计 模式 变量 方法 命名最佳实践 vp820 attilax总结命名表大全
    Atitit 插件机制原理与设计微内核 c# java 的实现attilax总结
    Atitit 插件机制原理与设计微内核 c# java 的实现attilax总结
    atitit.基于  Commons CLI 的命令行原理与 开发
    atitit.基于  Commons CLI 的命令行原理与 开发
    atitit.js 与c# java交互html5化的原理与总结.doc
  • 原文地址:https://www.cnblogs.com/xinfan1/p/11311294.html
Copyright © 2020-2023  润新知