UDP协议

TOC

udp协议

称之为数据包协议,不需要建立连接,不需要知道对方是否收到,无需先启动服务端在启动客户端。

缺点

  • 数据不安全,容易丢失

优点

  • 传输速度快
  • 能支持并发
  • 不会粘包

应用场景:早期的QQ聊天室

# 服务端
import socket

# socket.SOCK_DGRAM---> UDP协议
server = socket.socket(type=socket.SOCK_DGRAM)

# 服务端需要绑定一个地址,让别人知道你在哪里
server.bind(('localhost', 9527))

while True:
    # 发送数据给服务端的用户地址
    # 因此此处接收的是来自客户端的消息和地址
    data, addr = server.recvfrom(1024)
    print(addr)
    print(data.decode('utf-8'))

    mes = input('>>>').strip()

    # 无论服务端还是客户端,发送消息时,都必须知道对方是谁
    server.sendto(mes.encode('utf-8'), addr)



# 客户端
import socket

client = socket.socket(type=socket.SOCK_DGRAM)

# 此处的ip和端口号是服务的端的IP和端口号
address = ('localhost', 9527)

while True:
    data = input('>>>').strip()

    client.sendto(data.encode('utf-8'), address)

    # 接收服务端的数据
    data, addr = client.recvfrom(1024)

    print(data.decode('utf-8'))

image-20191206170145478

image-20191206170158856

TCP/UDP协议对比

TCP协议(称为流式协议)

优点:

  • 数据安全

缺点:

  • 传输速度慢
  • 黏包




原文地址:https://www.cnblogs.com/cnhyk/p/12000696.html