了解了物联网项目的大体结构之后,我们先从物联网的联网相关部分说起,这也是物联网项目中的关键环节.在联网环节中,不仅要考虑如何连接上,还要考虑连接后如何传输数据.换句话说数据是以什么格式进行传输,对系统压力和稳定性以及整体项目更有利.在互联网项目开发中,多数情况大家习惯了用JSON数据包来进行网络两端的数据交互.转入到物联网项目中也自然会想到用JSON来交换数据,一些大厂的物联网平台也是这样做的,但是同时又提供了一种自定义字节串(字节流)的方式进行数据交换,这节我们就说这两个的差别.   字节…
  网络上搜索MQTT协议,会出现太多的解释,这里就不做官方标准释义的复制了.这一节我们从实战理解角度,通俗的将MQTT协议的作用及实现原理说一下,旨在可以快速理解MQTT协议.所以可能会出现很多看似不标准的解释,但是更容易理解MQTT的内涵,对MQTT十分精通者请忽略此文.   在物联网项目中,经常出现的要求是"有限环境".什么意思呢,通俗说就是网络可能不太稳定,带宽也可能很小,网速也比较低,硬件MCU性能也很低,要求在这种情况下也能可靠联网传输信息.看到这里大家就会想到我前面提到的…
  在MQTT协议中,一个控制报文(数据包)的结构按照前后顺序分如下三部分: 结构名 中文名 解释说明 Fixed header 固定报头 报文的最开始部分,所有报文都包含这个部分 Variable header 可变报头 固定报文的附加部分,有些报文没有这个部分 Payload 有效载荷 需要携带的信息内容,有些报文没有这个部分   下图是MQTT控制报文(数据包)格式的结构示意图: 1.固定报头(Fixed header):   固定报头存在于所有MQTT数据包中,表示数据包类型及控制类标志…
  前面章节介绍过,MQTT协议和CoAP协议都是物联网中比较流行的协议,都对传输量做了很大的精简,传输开销小,以适应物理网的网络环境.   XMPP协议也有人说是适合物联网通信的,但它是基于XML,对于嵌入式硬件设备来说,实现XML解析是非常困难和消耗资源的.   还有大家熟知的HTTP协议,它对于嵌入式硬件设备来说应该属于重量级,也不太合适.目前很多物联网设备都是资源受限型的,内存空间和计算能力都很有限. ◇   关于MQTT协议和CoAP协议比较的文章网络上有很多,我们下面从应用场景要求的…
  前面讨论了MQTT协议的控制报文的格式,下面分别举例探讨各个控制报文的详细内容. 01.CONNECT – 连接服务端   客户端到服务端的网络连接建立后,客户端发送给服务端的第一个报文必须是CONNECT报文.客户端在连接成功后,不能再次发送这个报文,否则服务端应按照违规处理,断开当前网络连接.一个完整的CONNECT报文见下图:   清理会话--Clean Session(1号位)   这个标志位是代表对会话状态的处理方式.   如果设置为0,则服务端必须使用客户端ID找到该客户端的会话…
  通过上一节我们对MQTT协议已经有了初步的印象,这一节我们开始深入的理解一下MQTT协议,介绍常用的MQTT 3.1.1版本,5.0版本后面指介绍新增部分即可.这一节我们先介绍MQTT里常用的术语(非官方文档直接复制).   网络连接(Network Connection):   MQTT 是一种连接协议,底层使用 TCP/IP (传输层协议)提供网络连接,提供有序.可靠的.双向字节流传输.这个连接需要互联网通信的基础设施支撑,客户端使用它连接到服务端(MQTT代理服务的服务器或服务器集群)…
iOS系列 基础篇 03 探究应用生命周期 目录: 1. 非运行状态 - 应用启动场景 2. 点击Home键 - 应用退出场景 3. 挂起重新运行场景 4. 内存清除 - 应用终止场景 5. 结尾 本篇主要探讨的是iOS应用中各种状态的跃迁过程,建议大家通过修改AppDelegate.swift,在每个过程中添加日志输出代码,从而观察其变化. 作为应用程序的委托对象,AppDelegate类在应用程序生命周期的不同阶段会回调不同的方法. 首先,咱们先来了解一下iOS应用的不同状态和他们之间的关系…
概要 Thread类包含start()和run()方法,它们的区别是什么?本章将对此作出解答.本章内容包括:start() 和 run()的区别说明start() 和 run()的区别示例start() 和 run()相关源码(基于JDK1.7.0_40) 转载请注明出处:http://www.cnblogs.com/skywang12345/p/3479083.html start() 和 run()的区别说明 start() : 它的作用是启动一个新线程,新线程会执行相应的run()方法.s…
基础篇 6 - 16 关... 在记录之前,先说一件事 = =! 小学生真多 = =!好心提供一个靶场,玩玩就算了,他挂黑页 ?现在好了,以后这个靶场不对外啊!你高兴了?爽了吧? 都是新手过来的,好心搭个公网的漏洞网站,还真有挂黑页的... 第六关... 这个关卡设置的有点问题,只有一个登陆框,也没给提示账号密码,弱密码也试了好几波,都没进去 = =!然后我就去数据库里看看密码 = =! 毕竟源码设计的还是有问题,然后我就开始登陆了. 看到这里,直接抓包,毕竟不就是一个修改参数的漏洞嘛... 是…
目录 保存为文本文件:saveAsTextFile 保存为json:saveAsTextFile 保存为SequenceFile:saveAsSequenceFile 读取hive 保存为文本文件:saveAsTextFile # -*-coding=utf-8 -*- from pyspark import SparkConf, SparkContext sc = SparkContext('local') sc.parallelize([1, 2, 3, 4]).saveAsTextFile…