下图来自博客园的博主——小名叫小明,说明了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后的效果截图
- 创建客户端套接字
- 发送数据
- 关闭套接字
# @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例程)
【更多内容敬请期待】