在Python中发送UDP数据包

这篇具有很好参考价值的文章主要介绍了在Python中发送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数据包了。文章来源地址https://www.toymoban.com/news/detail-847356.html

到了这里,关于在Python中发送UDP数据包的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java 发送和接收udp数据 udp数据帧结构

    项目开发中,有个需求是接收udp的组播信息,获取帧并解析其中的内容。之前没有接触过udp的通讯以及数据帧。查阅资料对udp的通讯间的发送与接收实现记录如下。 UDP有三种通讯方式,分别是, 单播 、广播、还有组播。 单播 : 单机与单机之间的通讯 广播 : 当前主机与所在

    2024年02月02日
    浏览(25)
  • 【Python实用技巧】如何批量修改歌曲信息

    1 背景 最近朋友说有个问题比较苦恼,手里有一批歌曲文件要整理归档,但是很多歌曲文件的属性信息不全,手动点开文件属性一个个进行修改太折磨人了。有没什么办法可以批量进行修改? 朋友有难,自然是要赴汤蹈火的,当时就夸下了海口,放心包在我身上,一定帮你找

    2024年02月09日
    浏览(41)
  • 10个超级实用的Python技巧

    人生苦短,我学Python。离不开它自带的“buff”。 - 简单好用 Python的优势很多,最明显的便是简单、易上手。Python的语法非常简单,比如敲“Hello World”,用其他编程语言要敲6-7行代码,用Python只需要1行代码,让新手也能够轻松上手。 - 丰富的标准库 Python拥有的丰富标准库,

    2023年04月09日
    浏览(33)
  • Python实用技巧:将 Excel转为PDF

    将Excel文件转换为PDF可以方便储存表格数据,此外在打印或共享文档时也能确保表格样式布局等在不同设备和操作系统上保持一致。今天给大家分享一个使用第三方Python库Spire.XLS for Python 实现Excel转PDF的简单方法。 1. 首先,通过pip命令来安装依赖库; 2. 安装完成后,导入所需

    2024年02月05日
    浏览(58)
  • HTTP代理编程:Python实用技巧与代码实例

    今天我要与大家分享一些关于HTTP代理编程的实用技巧和Python代码实例。作为一名HTTP代理产品供应商,希望通过这篇文章,帮助你们掌握一些高效且实用的编程技巧,提高开发和使用HTTP代理产品的能力。 一、使用Python的requests库发送HTTP请求: Python的requests库是一个强大而简便

    2024年02月13日
    浏览(34)
  • python实战应用讲解-【numpy数组篇】实用小技巧(八)(附python示例代码)

    目录   如何在NumPy数组上映射一个函数 方法一:numpy.vectorize()方法 方法2:使用lambda函数 方法3:用一个数组作为函数的参数来映射一个NumPy数组 如何使用给定的索引位置重新排列二维NumPy数组的列 如何用NumPy删除只包含0的数组行 如何删除Numpy数组中包含非数字值的列

    2024年02月01日
    浏览(37)
  • python实战应用讲解-【numpy数组篇】实用小技巧(五)(附python示例代码)

    目录   查找两个NumPy数组的并集 查找NumPy数组中的唯一行 扁平化 一个NumPy数组的列表 使用NumPy在Python中扁平化一个矩阵 从元素上获取NumPy数组值的幂 为了找到两个一维数组的联合,我们可以使用Python Numpy库的函数numpy.union1d()。它返回唯一的、经过排序的数组,其值在两个输

    2023年04月14日
    浏览(32)
  • 网络编程-UDP协议(发送数据和接收数据)

    需要了解TCP协议的,可以看往期文章 https://blog.csdn.net/weixin_43860634/article/details/133274701 通过此图,可以了解UDP所在哪一层级中 发送数据 接收数据 运行效果 1、 UDP是面向无连接通信协议 (通俗一点讲,就是不管是否已连接成功,直接发送数据),该特性正好与TCP协议相反,

    2024年02月07日
    浏览(28)
  • 2.4 - 网络协议 - TCP协议工作原理,报文格式,抓包实战,UDP报文,UDP检错原理

    「作者主页」: 士别三日wyx 「作者简介」: CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」: 对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 TCP

    2024年02月05日
    浏览(33)
  • Python实用技巧:Pandas--DataFrame--筛选和删除含特定值的行与列

    Python实用技巧:Pandas–DataFrame–筛选和删除含特定值的行与列 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程 👈 希望得到您的订阅和支持~ 💡 创作高质量博文,分享更多关于深度学习、PyT

    2024年04月13日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包