CoAP调试工具Mozi.IoT.CoAP应用详解
前言
CoAP是一种类HTTP协议的物联网专用协议,其数据包为人类不可阅读的字节流形式,在开发相关应用的时候往往不能准确的了解数据包的内容。故需要专用的调试工具对数据和通讯进行调试。这篇文章是为了让开发者更好的了解工具的特性。
CoAP协议介绍
CoAP(Constrained Application Protocol)受限应用协议,是一种在物联网世界的类web协议,RFC规范定义为RFC7252,7959,8613,8974。该协议使用在资源受限的物联网设备上。物联网设备的RAM,ROM都通常非常小,不能运行消耗资源比较多的TCP和HTTP。
CoAP调试工具
工具名称:Mozi.IoT.CoAP
下载地址:Mozi.Network 发行版 - Gitee.com
调试地址:coap://coap.me
调试环境:.Net4
命令行参数说明
用法:coap command url [options] [body]
command 可选值:get | post | put | delete
url 格式
coap://{host}[:{port}]/{path}[?{query}]
options 请求选项参数如下:
-time 监听若干秒,参数值为整数,单位为秒
-dump 值为文件路径,将编码好的数据包转储到文件,不发起请求
-file 需要上传的文件的路径
-round 重复发起请求的次数(最高100次),需-time参数进行配合
-type 消息类型,取值
con --Confirmable
non --NonConfirmable
ack --Acknowledgement
rst --Reset
-token 格式:0x0f0e
-ifmatch
-etag
-ifnonematch
-extendedtokenlength
-locationpath
-contentformat
-maxage
-accept
-locationquery
-block2 Block2设置,格式:Num/MoreFlag/Size
-block1 Block1设置,格式:Num/MoreFlag/Size
Num:0~1045785,MoreFlag:[0|1],Size:0~1024
-size2
-proxyuri
-proxyscheme
-size1
注:
1.字符串变量值用""包裹
2.整型变量值用,直接输入整数即可,如 -size 1024
body 说明:
1.0x开始的字符串被识别为HEX字符串并被转为字节流
2.其它识别为普通字符串同时被编码成字节流,编码方式为UTF-8
3.带空格的字符串请用""进行包裹"
示例:
coap get coap://127.0.0.1:5683/core/time?type=1 -block1 0/0/128
指令解释
-time
值类型:整数
说明:
此指令指示程序持续监听若干秒,无论服务端是否有响应,程序都不会退出。默认情况下,程序在发起请求时会阻塞30s,直到收到一次服务端响应或超时就会立即结束运行。有时候服务器不会仅仅发送一次响应,而是将包进行分块发送,或服务器响应不时很及时。这两种情况下就需要控制监听的时间。
-dump
值类型:字符串
说明:
此指令会将请求包以HEX字符串的形式,导出到指定的文件,同时不会发起与服务器的通讯请求。
-file
值类型:字符串
说明:
设置上传的文件的完整路径,文件会按默认的分块大小进行传输(默认128bit)
-round
值类型:整数
说明:
设置重复发起请求的次数,为防止工具被用作攻击工具,上限设置为100次
-type
值类型:枚举
说明:
消息的类型,取值范围如下(忽略大小写):
Confirmable | CON
NonConfirmable | NON
Acknowledgement | ACK
Reset | RST
-token
值类型:二进制
说明:
请使用HEX字符串的格式设置此值,如0x0f0e
-ifmatch
值类型:字符串
说明:
请参考HTTP通讯中的if-match
-etag
值类型:字符串
说明:
请参考HTTP通讯中的etag
-ifnonematch
值类型:字符串
说明:
请参考HTTP通讯中的if-none-match
-extendedtokenlength
值类型:字符串
说明:
这个值暂时不要使用,因为最新的规范文档还没有表述的很清楚,待后期实现后会加入
-contentformat
值类型:字符串或数字
说明:
这个参数表示发起的请求内容的格式,用于POST/PUT两种请求方式。如果不设置此参数,则通讯双方默认内容格式为为text/plain,且此参数不会附加到数据包中。
取值范围如下表:
"text/plain" | 0
"application/link-format" | 40
"application/xml" | 41
"application/octet-stream" | 42
"application/exi" | 47
"application/json" | 50
"application/cbor" | 60
-accept
值类型:字符串或数字
说明:
表示客户端期望服务器返回的内容的格式类型,参数取值请参看-contentformat。
-block1|block2
值类型:字符串
说明:
表示期望使用的分块值,格式为{Num}/{MoreFlag}/{Size}。例如:1/0/1024。
Num:表示当前请求的块在整个资源中的序号,取值范围为0-1045785
MoreFlag:表示是否有更多后序包,取值范围为[0|1]
Size:表示分块的大小,取值为2**[4-11],可取值为16,32,64,128,256,512,1024,2048
-size2 | -size1
值类型:无符号整型
说明:
表示整个资源的大小,取值范围为0-2**32,即无符号整型
-proxyuri
值类型:字符串URI
说明:
表示后端响应请求的代理服务器地址的绝对地址
-proxyscheme
用于重新组装后端服务器的地址,该值仅替换协议头部分。如果-proxyscheme https ,那么请求地址coap://127.0.0.1/core/time 就会变换为https://127.0.0.1/core/time
CoAP调试工具Mozi.IoT.CoAP应用详解的更多相关文章
- CoAP调试工具 Mozi.IoT.CoAP
前言 CoAP是一种类HTTP协议的物联网专用协议,其数据包为人类不可阅读的字节流形式,在开发相关应用的时候往往不能准确的了解数据包的内容.故需要专用的调试工具对数据和通讯进行调试. CoAP协议介绍 ...
- 前端开发调试工具控制台之console命令详解
控制台(Console)是Firebug的第一个面板,也是最重要的面板,主要作用是显示网页加载过程中产生各类信息. 一.显示信息的命令 Firebug内置一个console对象,提供5种方法,用来显示 ...
- COAP协议 - arduino ESP32 M2M(端对端)通讯与代码详解
前言 最近我在研究 COAP 协议,在尝试使用 COAP 协议找了到了一个能在ESP32上用的coap-simple库,虽然库并不完善关于loop处理的部分应该是没写完,但是对于第一次接触COAP的朋 ...
- js调试工具Console命令详解
这篇文章主要介绍了js调试工具Console命令详解,需要的朋友可以参考下 一.显示信息的命令 复制代码 代码如下: < !DOCTYPE html> < html> &l ...
- IDEA中 Debug 调试工具(图文详解)
DEBUG调试工具 一. Debug 调试工具 1. Debug的作用 2. Debug的使用步骤 3. IDEA中Debug按钮详解 总结 参考博文:https://blog.csdn.net/qq ...
- [转]keil使用详解
第一节 系统概述 Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上.结构性.可读性.可维护性上有明显的优势,因而易学易用.用过 ...
- KeilC51使用详解 (一)
第一节 系统概述 Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上.结构性.可读性.可维护性上有明显的优势,因而易学易用.用过 ...
- ORACLE PL/SQL编程详解
ORACLE PL/SQL编程详解 编程详解 SQL语言只是访问.操作数据库的语言,并不是一种具有流程控制的程序设计语言,而只有程序设计语言才能用于应用软件的开发.PL /SQL是一种高级数据库程序设 ...
- http协议详解<一>
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://7826443.blog.51cto.com/7816443/1729227 写在 ...
随机推荐
- Redis系统学习
准备写一些关于Redis学习的文章的,发现网上有N多资料有人已经做了总结.查看这些Redis资料,按次序浏览这些Redis资料,相信想学习Redis的同学会很快熟悉: 1.Redis学习手册(目录) ...
- 垃圾收集器G1和CMS ,以及老年代和新生代的比例设置
首先 1.G1是包括年轻代和年老代的GC 2.CMS是年老代GC 3.二者在某些时候都需要FullGC(serial old GC)的辅助 ###CMS收集器:CMS(ConCurrent Mark ...
- jvm-learning-运行时数据区-整体
在jdk8之后之前的方法区有叫做元数据. 每个JVM只有一个Runtime实例,即为运行时环境,相当于内存结构种的运行时数据区 线程 线程是一个程序里的运行单元,JVM允许一个应用有多个线程并行的执行 ...
- 说说finally和final的区别
final用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承.内部类要访问局部变量,局部变量必须定义成final类型. finally是异常处理语句结构的一部分,表示总是 ...
- Redis 相比 Memcached 有哪些优势?
1.Memcached 所有的值均是简单的字符串,redis 作为其替代者,支持更为丰 富的数据类 2.Redis 的速度比 Memcached 快很 3.Redis 可以持久化其数据
- 写一段代码在遍历 ArrayList 时移除一个元素?
该问题的关键在于面试者使用的是 ArrayList 的 remove() 还是 Iterator 的 remove()方法.这有一段示例代码,是使用正确的方式来实现在遍历的过程中移 除元素,而不会出现 ...
- 详解AOP——用配置文件的方式实现AOP
AOP概念 1.AOP:面向切面(方面)编程,扩展功能不修改源代码实现 AOP原理 AOP采用横向抽取机制,取代了传统纵向继承体系重复性代码 传统的纵向抽取机制: 横向抽取机制: AOP操作术语 1. ...
- weevely使用小结
Weevely 写在前面 由于比赛不确定会不会提供菜刀或者蚁剑,这里我稍微对weevely进行简单介绍一下,具体还是请看官方文档,官方文档讲的很详细(前提你英语嘚不错) 官方文档:https://gi ...
- git 泄露(Log、Stash、Index)svn泄露
Git泄露 Log 首先介绍下.git:Git泄露:当前大量开发人员使用git进行版本控制,对站点自动部署.如果配置不当,可能会将.git文件夹直接部署到线上环境.这就引起了git泄露漏洞. 首先使用 ...
- 数字电路的多路复用(MUX)
学习文章:https://mp.weixin.qq.com/s/1pfLfvkAPyhEMLvfnyDy0g 最基本--2选1的MUX结构: 可以看作是:assign Y=S?B:A; 下面使用MUX ...