网络传输协议-UDP

DUP

1.UDP概念

UDP:英文全拼(User Datagram Protocol)简称用户数据报协议,它是无连接的、不可靠的网络传输协议。

2.UDP特点
-无连接
-资源开销小
-传输速度快
-udp每个数据包最大为64k

3.UDP的优缺点
优点:
-传输速度快
-不需要连接,资源开销小
缺点:
-传输数据不可靠,容易丢数据包
-没有流量控制,需要对方一直接受数据

4.应用场景
qq微信的 语音视频传输
广播消息

创建一个基于udp的网络程序流程很简单,具体步骤如下:

1.创建客户端套接字
2.发送/接收数据
3.关闭套接字

import socket
socket.socket(AddressFamily, Type)

SOCKET

socket(简称 套接字) 是进程间通信一个工具,它能实现把数据从一方传输到另外一方,完成不同电脑上进程之间的通信, 它好比数据的搬运工。

import socket

  1. 创建udp套接字
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

    2. 准备接收方的地址

    ‘192.168.1.103’表示目的ip地址 8080表示目的端口
    dest_addr = (‘192.168.1.103’, 8080) # 注意 是元组,ip是字符串,端口是数字

  2. 从键盘获取数据
    send_data = input(“请输入要发送的数据:”)

    4. 发送数据到指定的电脑上的指定程序中

    udp_socket.sendto(send_data.encode(‘utf-8’), dest_addr)

  3. 关闭套接字
    udp_socket.close()

发送和接收数据

import socket

  1. 创建udp套接字
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

    1. 准备接收方的地址
      dest_addr = (‘192.168.236.129’, 8080)

    2. 从键盘获取数据
      send_data = input(“请输入要发送的数据:”)

    3. 发送数据到指定的电脑上
      udp_socket.sendto(send_data.encode(‘utf-8’), dest_addr)

  2. 等待接收对方发送的数据
    recv_data = udp_socket.recvfrom(1024) # 1024表示本次接收的最大字节数

  3. 显示对方发送的数据
    接收到的数据recv_data是一个元组
    第1个元素是对方发送的数据
    第2个元素是对方的ip和端口
    print(recv_data[0].decode(‘gbk’))
    print(recv_data[1])

  4. 关闭套接字
    udp_socket.close()

猜你喜欢

转载自blog.csdn.net/weixin_42943975/article/details/82261885