简介


UDP协议是面向无连接的协议,使用UDP协议的时候,不需要建立链接,只需要知道对方的IP和端口号,就可以直接发送数据包
但是,数据无非保证一定到达,其安全性和可靠性不如TCP,但是其速度却比TCP快
业务:

  1. 语音广播
  2. 视频
  3. 聊天
  4. TFTP
  5. DNS

    UDP服务器


数据类型需要设置socket参数为socket.SOCK_DGRAM
s.recvfrom()函数生成的data数据类型为byte

  1. import socket
  2. s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
  3. s.bind(('127.0.0.1',8888))
  4. print('绑定UDP到8888端口')
  5. data,addr = s.recvfrom(1024)
  6. data = float(data)*1.8+32
  7. send_data = '转换后的温度(单位:华氏温度):'+str(data)
  8. print('Received from %s:%s.'% addr)
  9. s.sendto(send_data.encode(),addr)
  10. s.close

UDP客户端


  1. 创建客户端嵌套字
  2. 发送/接收数据
  3. 关闭嵌套字
    1. import socket
    2. s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    3. data = input('请输入要转换的温度(单位:摄氏温度):')
    4. s.sendto(data.encode(),('127.0.0.1',8888))
    5. print(s.recv(1024).decode())
    6. s.close()

    通信模型


UDP - 图1