c++ - 使用 MQTT 传输文件
问题描述
我正在开发一个能够与远程服务器通信的 C++ 应用程序,我想使用 MQTT,因为它可靠且易于实现。我还需要进行文件传输,我想知道是否可以使用 MQTT 执行此操作。
如果是这样,是否可以获得下载进度状态和下载速度?
我在谷歌上搜索,似乎有可能,但我没有得到非常明确的答案。
我谢谢你
解决方案
MQTT 是一个消息系统,您可以在消息中包含任何您想要的内容。
MQTT 消息有效负载只是字节的集合,使用这些字节发送文件很简单(假设文件大小小于 256mb,因为这是单个消息的最大大小)
如果您想发送较大的文件,则必须实施将其分解为较小部分的方案,这可能包括文件名、部分数量、当前部分编号、总文件大小等内容。
有了这些信息,您就可以确定传输速率,但是如果您首先看到的文件适合单个消息,则整个消息都会到达您的客户端的内存中,因此不会使计算速度变得困难。如果您真的需要,那么最好的选择是将文件分成更小的部分。
推荐阅读
- python - 尝试运行 python 包时出现“RuntimeError: invalid slot offset”
- cobol - 已更新如何修复 IF/DISPLAY 和编程数学?
- c# - ArgumentNullException:值不能为空。(参数“用户”)
- docker - 获取非当前分支的分支名称 gitlab-ci
- python - TypeError: __init__() 接受 1 个位置参数,但给出了 33 个(FLASK)
- android - Android 应用:未声明后台位置访问权限
- c# - 从 SignalR 连接获取客户端 IP
- c++ - C++ 中“AList”类的填充方法问题?
- django - 带有对象列表的 Django 字段
- java - 有没有办法专门从数组 Java 中挑选出元素到 Ada