Python:UDP编程、心跳机制、UDP的应用场景

本文介绍了Python中UDP服务端和客户端的编程流程,包括socket对象的创建、数据传输和接收。重点讨论了UDP的心跳机制,解释了心跳和ACK响应在不同场景下的应用。同时,文章探讨了UDP协议在视频、音频传输和DNS查询等应用场景的优势,尽管存在丢包风险,但在某些场景下仍优于TCP协议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

UDP服务端编程流程

1、创建服务端流程

2、UDP客户端编程流程

3、UDP的socket对象创建常用方法

练习——UDP版本群聊

UDP协议的应用


UDP服务端编程流程

1、创建服务端流程

  • 创建socket的对象。socket.SOCK_DGRAM
  • 绑定IP和Port,bind方法
  • 传输数据
    • 接受数据,socket.recvform(bufsize,[,flags]),获得一个二元组(string,address)
    • 发送数据,socket.sendto(string,address)发给某地址信息
  • 释放资源
import socket
sercice_udp = socket.socket(type=socket.SOCK_DGRAM)

sercice_udp.bind(("0.0.0.0",9999)) #绑定一个udp端口
data = sercice_udp.recv(1024)  #阻塞数据等待数据
data = sercice_udp.recvfrom(10235)  #阻塞等待一个数据(value,(ip,port))
sercice_udp.sendto(b"7",('192.168.1.102',10000))
sercice_udp.close()

结果状态

2、UDP客户端编程流程

  • 创建socket对象。socket.SOCK_DGRAM
  • 发送数据,socket.sendto(string,address)发给某地址某信息
  • 接受数据,socket.recvform(bufsize,[,flags]),获得一个二原则(string,address)
  • 释放资源

注意:UDP是无协议链接的,所以可以只有任何一端,例如客户端发往服务端,服务端存在与否无所谓

UDP创建socket对象后,是没有占用本地地址和端口的

import socket
client_ser = socket.socket(type=socket.SOCK_DGRAM)
raddr = ("192.168.1.102",10000)

client_ser.connect(raddr)

client_ser.sendto(b'8',raddr)
client_ser.send(b'9')

data = client_ser.recvfrom(1024) #阻塞等待数据
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值