【Python】发送UDP数据(保姆级图文+附测试工具文件+api例程)

本文详细介绍了如何在Python中使用socket模块进行UDP通信,包括创建套接字(AF_INET, SOCK_DGRAM)、发送UTF-8编码的数据到指定IP和端口,以及关闭套接字的基本步骤。通过实例演示和网络调试助手验证,适合初学者快速上手UDP编程。
摘要由CSDN通过智能技术生成


欢迎关注 『Python』 系列,持续更新中
欢迎关注 『Python』 系列,持续更新中

下图来自博客园的博主——小名叫小明,说明了udp网络程序模型
在这里插入图片描述

API说明:

1.创建套接字

udp_socket = socket.socket(参数1, 参数2)
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

  • 参数1:family(给定的套接族)一般有两种重要参数
    • socket.AF_INET(用于服务器与服务器之间的网络通信)
    • socket.AF_INET6 (基于IPV6方式的服务器与服务器之间的网络通信)
  • 参数2:type(套接字类型),也是一般两个类型
    • socket.SOCK_STREAM(基于TCP的流式socket通信)
    • socket.SOCK_DGRAM(基于UDP的数据报式socket通信)
  • 说明:这里我们使用的是IP4连接所以选择socket.AF_INET;UDP数据发送所以选择socket.SOCK_DGRAM。
    简单来说,见面就是一行udp_socket = socket.socket(socket.AF_INET,cosket.SOCK_DGRAM)可以理解为英语中的固定搭配。

2.发送数据

udp_socket.sendto(参数1).encode(参数2,(“参数3”,参数4)
udp_socket.sendto(“hello”.encode(“utf-8”), (“127.0.0.1”, 10360))

  • 参数1:表示发送数据的内容
  • 参数2:表示编码格式
  • 参数3:表示目的地ip
  • 参数4:表示目的地端口
  • 说明:sendto 的第一个参数需要一个字节类型,所以需要编码一下,不能单单传一个字符串。发送数据的内容,发送后会变成16进制的汇编语言,端口号自己设定一定要是没有被占用的端口号,建议随便输一个30000起步的。

在这里插入图片描述

3.关闭套接字

udp_socket.close()

  • 直接这么写就完事儿了

基本例程

为了验证程序是否真的发送了UDP数据,这里我使用网络调试助手来验证。
工具下载百度链接:https://pan.baidu.com/s/19pzqqUczM7cTxbGJvPwEDA
提取码:1hs6

先把网络调试助手设置成如下图,然后运行python程序

在这里插入图片描述
成功发送hello后的效果截图
在这里插入图片描述

  1. 创建客户端套接字
  2. 发送数据
  3. 关闭套接字
# @Time    : 2021/12/9 14:55
# @Author  : 南黎
# @FileName: 发送udp数据.py
import socket

def main():
    # 1.创建一个udp套接字
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

    # 2.准备接收方的地址
    # 127.0.0.1 表示目的地ip
    # 10360  表示目的地端口,最好大一点,避免使用已经被使用过的端口30000起步保险一点
    udp_socket.sendto("hello".encode("utf-8"), ("127.0.0.1", 10360))

    # 3.关闭套接字
    udp_socket.close()


if __name__ == "__main__":
    main()

总结

大家喜欢的话,给个👍,点个关注!继续跟大家分享敲代码过程中遇到的问题!

版权声明:

发现你走远了@mzh原创作品,转载必须标注原文链接

Copyright 2021 mzh

Crated:2021-11-27

欢迎关注 『Python』 系列,持续更新中
欢迎关注 『Python』 系列,持续更新中
【Python安装第三方库一行命令永久提高速度】
【使用PyInstaller打包Python文件】
【Python】发送udp数据(保姆级图文+附测试工具文件+api例程)
【Python】接收UDP数据(保姆级图文+附测试工具文件+api例程)
【更多内容敬请期待】


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发现你走远了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值