Python高级语法——网络编程——学习心得笔记

Python高级语法——网络编程——学习心得笔记

1. 网络编程

  • 网络协议:一套规则

  • 网络模型

    • 七层模型
    • 四层模型-实际应用
  • 每一层都有相应的协议负责交换信息或者协同工作

  • TCP/IP 协议

  • IP地址:负责在网络上唯一定位一个机器

    • IP地址分为ABCDE类
    • 由四个数字段组成,每个数字段的取值0-255
    • 192.168.xxx.xxx 局域网IP
    • 127.0.0.1 本机
    • IPv4
    • IPv6
  • 端口

    • 范围:0-65535
      • 知名端口:0-1023
      • 非知名端口: 1024-65535
  • TCP/UDP协议

    • UDP:非安全的,不面向连接的传输
      • 安全性差
      • 大小限制在64KB
      • 没有顺序
      • 速度快
    • TCP
      • 基于连接的通信
  • SOCKET编程

    • 套接字
    • 一个网络通信的端点,能实现不同主机的进程通信
    • 通过IP和端口定位对方发送消息的通信机制
    • 分为UDP和TCP
    • UDP用于即时通讯,要求速度快,内容少
    • 客户端Client: 发起访问的一方
    • 服务器端Server:接受访问的一方
      **

- 看实例服务器端:37_1

**

import socket

# 模拟服务器的函数
# 建立一个服务器端

def serverFunc():
    # 1. 建立socket
    # socket.AF_INET:使用ipv4协议
    # socket.SOCK_DGRAM使用UDP通信
    sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

    # 2.绑定ip和port
    # 127.0.0.1这个IP代表机器自身
    # 7852 随手指定的端口号
    # 地址是一个tuple类型(ip, port)
    addr = ('127.0.0.1', 7852)
    # 绑定地址和端口
    sock.bind(addr)

    # 3.接受对方消息
    # 等待方式为死等,没有其他可能性
    # recvfrom接受的返回值是一个tuple,前一项表示数据,后一项表示地址
    # recvfrom参数的含义是缓冲区大小
    # rst = sock.recvfrom(500)
    data, addr = sock.recvfrom(500)
    print(data)
    print(type(data))

    # 发送过来的数据时bytes格式,必须通过解码才能得到格式的内容
    # decode解码函数默认参数是utf8
    text = data.decode()
    print(text)
    print(type(text))

    # 4.给对方返回消息
    # 发送的消息需要编码成bytes格式
    # encode默认也是utf8
    # 注意编码和解码要一致
    rsp = '我已经收到你的爱了,我也爱你'
    data = rsp.encode()
    sock.sendto(data, addr)

if __name__ == '__main__':
    print("Starting server......")
    serverFunc()
    print("Ending server......")






**

- 看实例客户端:37_2

**

import socket

# Client端流程
# 1.建立通信的socket
# 2.发送内容到指定的服务器
# 3.接受服务器给定的反馈内容

def clientFunc():
    # 建立连接socket
    sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    # 编码消息
    text = 'I love you baby'
    data = text.encode()
    # 发送消息到服务器端
    sock.sendto(data, ('127.0.0.1', 7852))
    # 接受服务器的消息,并对其解码
    data, addr = sock.recvfrom(200)
    text = data.decode()
    print(text)

if __name__ == '__main__':
    clientFunc()


2. HTTP协议

  • 什么超文本
    • 超文本是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本。
    • 超文本更是一种用户介面范式,用来显示文本及与文本之间相关的内容。
  • 什么实URL(Uniform Resource Locator)
    • url是统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。
    • 互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它
    • 基本URL包含模式(或称协议)、服务器名称(或IP地址)、路径和文件名
  • 超文本传输协议HTTP
    • 是一种按照URL指示访问一个html文件
    • 访问流程:
      • 参考图片37_0
        Python高级语法——网络编程——学习心得笔记_第1张图片
  • 特点
    • 参考我的博客:
    • HTTP协议的特点及访问流程-(上网流程图解)

你可能感兴趣的:(Python高级语法)