Python 中使用 UDP 发送和接收数据168
UDP(用户数据报协议)是一种无连接协议,用于在网络上发送数据。与 TCP 不同,UDP 不提供可靠性保证或顺序保证。这使得 UDP 非常适合实时应用,例如语音或视频流,其中数据丢失或延迟是可以接受的。
使用 Python 发送 UDP 数据
要使用 Python 发送 UDP 数据,可以使用 Python 的 socket 模块。以下是发送 UDP 数据报的示例代码:```python
import socket
# 创建一个 UDP 套接字
sock = (socket.AF_INET, socket.SOCK_DGRAM)
# 设置目标 IP 地址和端口
host = "127.0.0.1"
port = 5005
# 发送数据
data = b"Hello, UDP!"
(data, (host, port))
```
使用 Python 接收 UDP 数据
要使用 Python 接收 UDP 数据,也可以使用 socket 模块。以下是接收 UDP 数据报的示例代码:```python
import socket
# 创建一个 UDP 套接字
sock = (socket.AF_INET, socket.SOCK_DGRAM)
# 绑定到本地 IP 地址和端口
host = "0.0.0.0"
port = 5005
((host, port))
# 接收数据
while True:
data, addr = (1024)
print("收到来自", addr[0], ":", addr[1], "的数据:", ())
```
UDP 示例:乒乓球游戏
UDP 可以用来创建简单的网络游戏。以下是使用 Python 和 UDP 实现的简单乒乓球游戏的示例:```python
import socket
import pygame
# 创建一个 UDP 套接字
sock = (socket.AF_INET, socket.SOCK_DGRAM)
# 设置目标 IP 地址和端口
host = "127.0.0.1"
port = 5005
# 初始化 Pygame
()
screen = .set_mode((640, 480))
# 创建一个球
ball_x = 320
ball_y = 240
ball_speed_x = 5
ball_speed_y = 5
# 创建一个球拍
paddle_x = 50
paddle_speed = 0
# 主游戏循环
running = True
while running:
# 处理事件
for event in ():
if == :
running = False
elif == :
if == pygame.K_LEFT:
paddle_speed = -5
elif == pygame.K_RIGHT:
paddle_speed = 5
elif == :
paddle_speed = 0
# 更新球的位置
ball_x += ball_speed_x
ball_y += ball_speed_y
# 检测球是否与墙壁或球拍碰撞
if ball_x < 0 or ball_x > 640:
ball_speed_x *= -1
if ball_y < 0 or ball_y > 480:
ball_speed_y *= -1
if ball_x == paddle_x and ball_y >= paddle_y and ball_y
2024-10-27
上一篇:Python 中比较字符串相等
深入C语言:用结构体与函数指针构建面向对象(OOP)模型
https://www.shuihudhg.cn/134469.html
Python Turtle绘制可爱小猪:从零开始的代码艺术之旅
https://www.shuihudhg.cn/134468.html
PHP字符串转整型:深度解析与最佳实践
https://www.shuihudhg.cn/134467.html
C语言输出深度解析:从控制台到文件与内存的精确定位与格式化
https://www.shuihudhg.cn/134466.html
Python高效解析与分析海量日志文件:性能优化与实战指南
https://www.shuihudhg.cn/134465.html
热门文章
Python 格式化字符串
https://www.shuihudhg.cn/1272.html
Python 函数库:强大的工具箱,提升编程效率
https://www.shuihudhg.cn/3366.html
Python向CSV文件写入数据
https://www.shuihudhg.cn/372.html
Python 静态代码分析:提升代码质量的利器
https://www.shuihudhg.cn/4753.html
Python 文件名命名规范:最佳实践
https://www.shuihudhg.cn/5836.html