Pythonnet简介

网络编程

网络功能: 数据传输

OSI七层模型--->网络通信工作流程的标准化
    应用层:提供用户服务,集体功能由特定的功能而定
    表示层:提供数据的压缩优化,加密
    会话层:建立应用级的连接,选择传输服务
    传输层:提供不同的传输服务,流量控制
    网络层:路由选择,网络互联
    链路层:进行数据转换,具体消息的发送,链路的连接
    物理层:物理硬件,接口设定,网卡路由交换机等

    cookie
    高内聚:模块功能尽可能单一,不要掺杂
    低耦合:模块之间尽可能减少关联和影响


OSI七层模型的优点:
    1.将工作流程标准化
    2.降低了模块间的耦合度,使每一部分可以单独开发,单独工作


四层模型
    应用层
    传输层
    网络层
    物理链路层


五层模型(TCP/IP)
    应用层:应用层,表示层,会话层 三合一形成应用层
    传输层
    网络层
    链路层
    物理层


数据传输流程
    1.发送端由应用层到物理层逐层添加信息头(首部)最终在物理层发送
    2.中间经过节点(交换机,路由器等)转发,发送到接受端
    3.在接受端根据发送端的每一个信息头进行解析,最终消息到应用层展示给客户   

网络协议:在网络通信中双方都遵循的规定,包括建立什么样的网络结构,消息判断,标识代表什么等

    应用层:TFTP HTTP DNS SMTP 

    传输层:TCP UDP

    网络层:IP

    物理层:IEEE


网络相关概念

    网络主机:在网络中标识一台计算机 HOST

    本地使用:'localhost'
                     '127.0.0.1'

    网络使用:  0.0.0.0   可用网卡地址

                    '172.60.50.42'

    获取计算机名:
        import socket

        In [4]: socket.gethostname()
        Out[4]: 'tedu'

        In [7]: socket.gethostbyname('localhost')
        Out[7]: '127.0.0.1'

    IP地址
        网络上确定一台主机网络位置的地址


        IPv4:点分十进制    192.168.1.2    0--255  32位

        IPv6:128位2进制

        ping ip:测试和某一个主机的IP地址是否联通

        特殊IP地址
            
            127.0.0.1 本机测试IP
            0.0.0.0 使用本机可用IP
            192.168.1.0 表示网段IP
            192.168.1.1 网关IP
            192.168.1.255 广播地址

            通过地址获取主机网络信息
            In [3]: socket.gethostbyaddr('localhost')
            Out[3]: ('localhost', [], ['127.0.0.1'])
                        主机名     别名     网络地址

            点分十进制转换为二进制
            In [2]: socket.inet_aton('192.168.1.2')
            Out[2]: b'\xc0\xa8\x01\x02'

            点分二进制转换为十进制
            In [5]: socket.inet_ntoa(b'\xc0\xa8\x01\x02')
            Out[5]: '192.168.1.2'

    域名: 网络服务器地址的名称
        1.方便记忆
        2.名称表达一定的含义

    网络端口号:

        端口是网络地址的一部分,用于区分一个网络主机上的网络应用

        在一个操作系统中不同的网络应用监听不同的端口号

        取值范围:1--65535
                         1--255  一些众所周知的通用端口
                         256--1023 系统应用端口
                         1024--65535 自用端口
                         建议使用 >10000的端口


        获取一个应用的端口信息
        In [7]: socket.getservbyname('mysql')
        Out[7]: 3306

        网络字节序:数据在网络中的传输格式

你可能感兴趣的:(pythonnet)