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 中比较字符串相等

下一篇:使用 Python 处理中文数据库