UDP 机器控制项目

协议报文格式:

Ver +                  T       +     TKL + Code + MessageID + 11111111 + Command + Payload

01   + ( 00 | 01 | 02 | 03) + (000000)

40 02 00 00 FF 01 00 E0 4C 1E 5C 4C  // dev->ser   设备登陆请求: 报文编号:0,ID为00 E0 4C 1E 5C 4C

60 45 00 00 FF 01 00 E0 4C 1E 5C 4C  // ser->dev   服务器登陆响应: 报文编号:0,ID为00 E0 4C 1E 5C 4C

40 01 01 00 FF 02 00 E0 4C 1E 5C 4C  // dev->ser   设备登出请求: 报文编号:1,ID为00 E0 4C 1E 5C 4C

60 45 01 00 FF 02 00 E0 4C 1E 5C 4C  // ser->dev   服务器登出响应: 报文编号:1,ID为00 E0 4C 1E 5C 4C

50 01 02 00 FF 03 00 E0 4C 1E 5C 4C  // dev->ser   设备心跳请求: 报文编号:2,ID为00 E0 4C 1E 5C 4C

协议中服务器无响应

40 02 03 00 FF 04 00 E0 4C 1E 5C 4C  // dev->ser   设备数据上报请求: 报文编号:3,ID为00 E0 4C 1E 5C 4C

60 45 03 00 FF 04 00 E0 4C 1E 5C 4C  // ser->dev   服务器数据上报响应: 报文编号:3,ID为00 E0 4C 1E 5C 4C

40 02 04 00 FF 05 00 E0 4C 1E 5C 4C  // dev->ser   app控制设备请求: 报文编号:4,ID为00 E0 4C 1E 5C 4C

60 45 04 00 FF 05 00 E0 4C 1E 5C 4C  // ser->dev   设备响应app控制: 报文编号:4,ID为00 E0 4C 1E 5C 4C

  1. 服务器端返回的响应 Message ID 与 设备发送的 Message ID 一致
  2. 设备 ID 使用 MAC 地址形式,设备的唯一标识符
  3. 设备登录成功,返回响应;失败,无响应;退出作一样的处理
  4. 心跳,1分钟发一次,5秒内没有收到你的响应,我会重复发;连续5次没有收到你的响应,我会重新登陆

异常(待考虑,需要针对异常补充什么确保机制)

  1. 登陆后,万一网络断线了。比如说你那里显示设备已经登陆,我这里如果再重新登陆你那里会怎么处理?

报文数据

40020000ff01000c0157a42ee900010203040500

[UDP] UDP 报文数据(CoAP protocol)的更多相关文章

  1. TCP和UDP 协议发送数据包的大小

    在进行UDP编程的时候,我们最容易想到的问题就是,一次发送多少bytes好? 当然,这个没有唯一答案,相对于不同的系统,不同的要求,其得到的答案是不一样的,这里仅对像ICQ一类的发送聊天消息的情况作分 ...

  2. 第11章 UDP:用户数据报协-----读书笔记

    1.分片应用程序只关心IP数据报的长度,如果它超过MTU值,那么就要对数据包进行分片. 2.UDP首部字段图: (16位源端口号+16位目端口号+16位UDP长度+16位UDP校验和+数据) 3.UD ...

  3. TCP面向字节流和UDP面向报文的区别

    TCP面向字节流 打个比方比喻TCP,你家里有个蓄水池,你可以里面倒水,蓄水池上有个龙头,你可以通过龙头将水池里的水放出来,然后用各种各样的容器装(杯子.矿泉水瓶.锅碗瓢盆)接水. 上面的例子中,往水 ...

  4. Android(java)学习笔记80:UDP协议发送数据

    UDP协议发送数据:我们总是先运行接收端,再运行发送端发送端: 1 package cn.itcast_02; import java.io.IOException; import java.net. ...

  5. Java基础知识强化之网络编程笔记03:UDP之UDP协议发送数据 和 接收数据

    1. UDP协议发送数据 和 接收数据 UDP协议发送数据: • 创建发送端的Socket对象 • 创建数据,并把数据打包 • 调用Socket对象的发送方法,发送数据包 • 释放资源  UDP协议接 ...

  6. UDP发送的数据 以数据包形式发送

    UDP发送的数据 以数据包形式发送

  7. Android(java)学习笔记20:UDP协议发送数据

    1. UDP协议发送数据:我们总是先运行接收端,再运行发送端发送端: package cn.itcast_02; import java.io.IOException; import java.net ...

  8. UDP ------ UDP 详解

    原文地址:https://zhuanlan.zhihu.com/p/25622691 3. UDP疑难杂症 3.1 UDP的传输方式:面向报文 面向报文的传输方式决定了UDP的数据发送方式是一份一份的 ...

  9. UDP ------ UDP IPPROTO_UDPLITE 参数

    介绍 传统的 UDP 通信对整个报文进行校验 UDP-LITE 通信则可以设置校验的长度,适用于可以接受轻微的报文内容出错,比如视频数据:传统的 UDP 由于对整个报文校验,一旦出现报文数据出错就会被 ...

随机推荐

  1. SQL Server 查询所有外键子父表关系

    SELECT table_name,fk_name,reference_table_name,fk_list_number,fk_detailFROM (SELECT object_name(f.ob ...

  2. Spring bean的作用域和生命周期

    bean的作用域 1.singleton,prototype, web环境下:request,session,gloab session 2.通过scope="" 来进行配置 3. ...

  3. Unity3d利用opencv保存游戏视频

    脚本MyVideoWriter.cs using UnityEngine; using System.Collections; using OpenCvSharp; using OpenCvSharp ...

  4. 【笔记】android sdk集成的eclipse中导入项目

    android sdk集成的eclipse中导入项目 想要把旧的ADT项目,一模一样的导入进来,需要: 1.把项目放到,非当前ADT的workspace目录下: 2.从Project中Import,选 ...

  5. Oracle查询某段日期内某个时间段的数据

    示例: 查询最近一周12:30分到13:00这段时间内的订单量: SELECT * FROM T_ORDER O WHERE O.CREATEDATETIME BETWEEN SYSDATE AND ...

  6. linux环境下jdk的安装步骤

    JDK的安装步骤:1. 把jdk文件cp到服务器上2. 加权限 chmod +x 文件3. 执行 ./4.修改配置 vi /etc/profile 最后一行添加:export  JAVA_HOME=/ ...

  7. 个人理解的javascript作用域链与闭包

    闭包引入的前提个人理解是为从外部读取局部变量,正常情况下,这是办不到的.简单的闭包举例如下: function f1(){ n=100; function f2(){ alert(n); } retu ...

  8. Spring 4 官方文档学习(十五)CORS支持

    1.介绍 由于安全原因,浏览器禁止AJAX请求不在当前域内的资源.例如,你在一个浏览器标签中检查你的银行账户时,可能在另一个标签中打开了evil.com .来自evil.com的脚本绝对不可以用AJA ...

  9. hibernate存储过程 3

              hibernate存储过程 User.hbm.xml文件的内容如下: <?xml version="1.0"?> <!DOCTYPE hibe ...

  10. 20145318 GDB调试汇编堆栈分析

    20145318 GDB调试汇编堆栈分析 代码 #include<stdio.h> short addend1 = 1; static int addend2 = 2; const sta ...