当前位置: 代码网 > it编程>前端脚本>Python > 在Python中发送UDP数据包的方法步骤

在Python中发送UDP数据包的方法步骤

2025年08月14日 Python 我要评论
今天,我们将学习用户数据报协议(udp),并了解如何使用 python 编程发送 udp 数据包。在python中发送udp数据包用户数据报协议 (udp) 和 tcp/ip 的运行方式不同。 udp

今天,我们将学习用户数据报协议(udp),并了解如何使用 python 编程发送 udp 数据包。

在python中发送udp数据包

用户数据报协议 (udp) 和 tcp/ip 的运行方式不同。 udp 是一种面向消息的协议,与 tcp 不同,tcp 是一种面向流的协议,可确保所有数据都按正确的顺序传输。

设置 udp 套接字要容易一些,因为 udp 不需要持续很长时间的连接。 另一方面,与 tcp 不同,udp 消息的传递并不确定,并且它们必须适合单个数据包。

我们怎样才能用 python 做到这一点呢? python 有一个名为 socket 的内置模块,您必须导入该模块。

import socket

一旦我们导入了套接字模块,我们必须声明我们将尝试发送 udp 消息的端口号和 ip 地址。

ip = "127.0.0.1"
port = 5003
message = "info"

现在我们已经声明了这几个变量,现在是时候构建套接字了,我们将通过该套接字将 udp 消息发送到服务器。

sock = socket.socket(socket.af_inet, socket.sock_dgram)
sock.sendto(message, (ip,port))

您必须创建两个文件; 客户端.py 和服务器.py。 客户端和服务器文件必须位于相应的服务器和客户端系统中。

创建客户端程序后,下一步就是创建服务器程序,该程序将监视指定 ip 地址和端口号的任何 udp 数据包。

请注意,客户端 python 脚本必须在此服务器之前执行,否则客户端 python 脚本将失败。

一旦我们导入了套接字模块并提供了 ip 地址和端口号,我们就可以创建另一个套接字,该套接字将与我们在客户端应用程序中创建的套接字完全相同。

server.py 文件的示例代码:

import socket
ip = "127.0.0.1"
port = 5003
message= "the meeting is from 10 pm."

print(f"sending information")
print(f"{message} to {ip}:{port}")


sock = socket.socket(socket.af_inet,
                     socket.sock_dgram)
sock.sendto(message.encode(), (ip, port))

输出:

sending information
the meeting is from 10 pm. to 127.0.0.1:5003

您还应该编写代码来维护您的脚本不断侦听此连接,直到构建服务器套接字后它终止。

它采用简单的 while 循环的形式,如下所示:

client.py 文件的示例代码:

import socket
ip = "127.0.0.1"
port = 5003

sock = socket.socket(socket.af_inet,
                     socket.sock_dgram)
sock.bind((ip, port))
print(f"start listening to {ip}:{port}")
while true:
    data, addr = sock.recvfrom(1024)
    print(f"received message: {data}")

输出:

start listening to 127.0.0.1:5003
received message: the meeting is from 10 pm.

这样我们就可以在python中发送udp数据包了。

到此这篇关于在python中发送udp数据包的方法步骤的文章就介绍到这了,更多相关python发送udp数据包内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com