迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

在Python中发送UDP数据包

作者:迹忆客 最近更新:2023/06/26 浏览次数:

今天,我们将学习用户数据报协议(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 自定义迭代器

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Python 自定义迭代器

发布时间:2023/06/26 浏览次数:119 分类:Python

在本文中,我们将了解什么是迭代器以及如何借助 __iter__ 和 __next__ 类方法创建自定义迭代器。 我们还将学习如何在 Python 生成器的帮助下创建自定义迭代器。借助 Python 中的类方法 __iter__ 和

Python 高斯核

发布时间:2023/06/26 浏览次数:161 分类:Python

高斯核是一种高通滤波器,是图像处理中最常用的滤波器之一。 它也用于机器学习。 本博客将介绍该内核以及如何使用它。

Python 脚本中的 FFmpeg

发布时间:2023/06/26 浏览次数:167 分类:Python

本篇文章将介绍在Python中使用FFMPEG命令。安装 FFmpeg Python 包 首先,您必须在系统上安装 FFmpeg。 以管理员身份打开命令提示符并运行以下命令以使用 choco 安装 FFmpeg。

Python 中的 DNS 查找

发布时间:2023/06/25 浏览次数:118 分类:Python

本文将讨论 DNS 和 DNS 查找的概念。 之后,我们讨论使用 Python 进行 DNS 查找的方法。什么是 DNS DNS(域名系统)将域名转换为公共IP地址。

了解 Python 中的槽

发布时间:2023/06/25 浏览次数:167 分类:Python

本文将讨论槽常量变量在 Python 中的工作原理以及它如何比使用字典更好。了解 Python 中的槽

在 Python 中设置 HTTP 代理设置

发布时间:2023/06/25 浏览次数:141 分类:Python

在本文中,我们将讨论如何在我们的计算机和Python中设置HTTP代理设置。使用export命令在Python中设置HTTP代理设置

Pipenv 指定Python版本

发布时间:2023/06/25 浏览次数:88 分类:Python

本文讨论了使用 Pipenv 创建具有特定 Python 版本的虚拟环境的几种方法。 我们将列出先决条件并解释如何使用 pipelinev 所需的命令在虚拟环境中安装特定版本的 Python。

Python 验证 IP 地址

发布时间:2023/06/25 浏览次数:66 分类:Python

冒号分隔组 (:)。 在本指南中,我们将验证 IPv4 地址。在 Python 中验证 IP 地址验证IP地址意味着检查输入的IP是否有效。

Python 中的随机 IP 地址生成器

发布时间:2023/06/22 浏览次数:56 分类:Python

Python 提供了多个可用于打印随机 IP 地址的模块。 本教程将教您在 Python 中以字符串形式生成随机 IP 地址。使用 Faker 模块在 Python 中生成随机 IP 地址作为字符串

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便