CoAP学习笔记——Libcoap安装和使用
2015-04-10 15:16
295 查看
0.CoAP和libcoap CoAP是一种面向网络的协议,采用了与HTTP类似的特征,核心内容为资源抽象、REST交互以及可扩展的头选项等。 为了克服HTTP对于受限环境的劣势,CoAP既考虑到数据报长度的最优化,又考虑到提供可靠通信。一方面,CoAP提供URI,REST 式的方法如GET,POST,PUT和DELETE,以及可以独立定义的头选项以提高可扩展性。另一方面,CoAP基于UDP协议,为了弥补UDP传输的不可靠性,CoAP定义了带有重传机制的事务处理机制。 libcoap是CoAP协议的C语言实现,libcoap提供server和client功能,它是调试CoAP的有力工具,本文将说明如何在Linux平台上安装libcoap,并通过几个简单的例子说明libcoap的使用方法。 【测试环境】——Linux/ubuntu 【相关博文】
【CoAP协议文档——The Constrained Application Protocol (CoAP)】 【CoAP协议学习——CoAP基础】 【CoAP学习笔记——CoAP资源发现】 【CoAP学习笔记——服务器端繁忙时的处理请求流程】 【CoAP学习笔记——nodeJS node-coap安装和使用(Linux平台)】 【CoAP学习笔记——nodeJS node-coap安装和使用(windows平台)】
1.获得libcoap 通过git clone指令从github仓库中获得最新版本。 git clone https://github.com/authmillenon/libcoap.git href="https://github.com/authmillenon/libcoap.git" target=_blank>
2. 编译和安装libcoap 由于libcoap的源代码包中只有configure.in文件,所以比一般的linux源代码方式安装多了一步autoconf,使用autoconf可生成configure文件。 【1】生成configure文件 autoconf 【2】生成makefile文件 ./configure 【3】编译 make 【4】安装 sudo make install 安装完成之后,便会新建/usr/local/include/libcoap目录,并把coap.h config.h debug.h pdu.h等头文件复制到该目录中。另外,编译生成的libcoap.a该静态链接库被复制到了/usr/local/lib中。 同时,在编译完成之后,在example目录中会增加两个重要文件——coap-client和coap-server。
3. libcoap使用 进入example文件夹,在该文件夹中还有两个可执行文件,coap-client和coap-server。coap-client提供非常丰富的客户端测试指令,而coap-server提供一个较为简单的服务器端功能。 【服务器端测试】 在开始服务器端测试之前,必须知晓服务器端的IP地址,例如测试服务器的局域网IP地址为10.13.11.85 【1】运行coap-server ./coap-server 【2】在firefox中运行使用GET方法访问该服务器。该步骤需要保证firefox已经安装copper插件。 在浏览器地址栏中输入coap://10.13.11.85,点击工具栏中的GET按钮,那么coap-server便会返回以下内容
图1 使用火狐浏览器访问coap-server 【客户端测试】 【1】运行coap-server ./coap-server 【2】运行coap-client ./coap-client -m get -o result.txt coap://localhost 【-m】表示coap访问方法,默认为get方法,此处设置为get方法。除了get方法之外还包括put、post和delete。 【-o】表示访问获得的内容保存到result.txt文件中 如果访问成功,那么控制台输出: v:1 t:0 tkl:0 c:1 id:45104 【v】表示coap的版本编号,此时的coap的版本编号为1。 【t】表示报文类型为CON, 【tkl】表示token区域的长度,此时的token区域的长度为0。 【c】表示访问方法(该处还需要分析) 【id】表示message id result.txt文件内容为: This is a test server made with libcoap (see http://libcoap.sf.net) Copyright (C) 2010--2013 Olaf Bergmann <bergmann@tzi.org>
4.总结 libcoap安装过程需要注意——libcoap并没有直接提供configure文件,需要使用autoconf工具生成configure文件,生成configure文件之后的安装方法和其他源代码形式的安装方法完全相同。libcoap中的coap-client是一个非常使用的工具,可通过控制台设置不同的参数,该工具可与firefox copper插件配合使用。
【CoAP协议文档——The Constrained Application Protocol (CoAP)】 【CoAP协议学习——CoAP基础】 【CoAP学习笔记——CoAP资源发现】 【CoAP学习笔记——服务器端繁忙时的处理请求流程】 【CoAP学习笔记——nodeJS node-coap安装和使用(Linux平台)】 【CoAP学习笔记——nodeJS node-coap安装和使用(windows平台)】
1.获得libcoap 通过git clone指令从github仓库中获得最新版本。 git clone https://github.com/authmillenon/libcoap.git href="https://github.com/authmillenon/libcoap.git" target=_blank>
2. 编译和安装libcoap 由于libcoap的源代码包中只有configure.in文件,所以比一般的linux源代码方式安装多了一步autoconf,使用autoconf可生成configure文件。 【1】生成configure文件 autoconf 【2】生成makefile文件 ./configure 【3】编译 make 【4】安装 sudo make install 安装完成之后,便会新建/usr/local/include/libcoap目录,并把coap.h config.h debug.h pdu.h等头文件复制到该目录中。另外,编译生成的libcoap.a该静态链接库被复制到了/usr/local/lib中。 同时,在编译完成之后,在example目录中会增加两个重要文件——coap-client和coap-server。
3. libcoap使用 进入example文件夹,在该文件夹中还有两个可执行文件,coap-client和coap-server。coap-client提供非常丰富的客户端测试指令,而coap-server提供一个较为简单的服务器端功能。 【服务器端测试】 在开始服务器端测试之前,必须知晓服务器端的IP地址,例如测试服务器的局域网IP地址为10.13.11.85 【1】运行coap-server ./coap-server 【2】在firefox中运行使用GET方法访问该服务器。该步骤需要保证firefox已经安装copper插件。 在浏览器地址栏中输入coap://10.13.11.85,点击工具栏中的GET按钮,那么coap-server便会返回以下内容
图1 使用火狐浏览器访问coap-server 【客户端测试】 【1】运行coap-server ./coap-server 【2】运行coap-client ./coap-client -m get -o result.txt coap://localhost 【-m】表示coap访问方法,默认为get方法,此处设置为get方法。除了get方法之外还包括put、post和delete。 【-o】表示访问获得的内容保存到result.txt文件中 如果访问成功,那么控制台输出: v:1 t:0 tkl:0 c:1 id:45104 【v】表示coap的版本编号,此时的coap的版本编号为1。 【t】表示报文类型为CON, 【tkl】表示token区域的长度,此时的token区域的长度为0。 【c】表示访问方法(该处还需要分析) 【id】表示message id result.txt文件内容为: This is a test server made with libcoap (see http://libcoap.sf.net) Copyright (C) 2010--2013 Olaf Bergmann <bergmann@tzi.org>
4.总结 libcoap安装过程需要注意——libcoap并没有直接提供configure文件,需要使用autoconf工具生成configure文件,生成configure文件之后的安装方法和其他源代码形式的安装方法完全相同。libcoap中的coap-client是一个非常使用的工具,可通过控制台设置不同的参数,该工具可与firefox copper插件配合使用。
相关文章推荐
- CoAP学习笔记——nodeJS node-coap安装和使用(Linux平台)
- CoAP学习笔记——nodeJS node-coap安装和使用(windows平台)
- Smarty 学习笔记一 安装与使用
- 开始hadoop前的准备:ubuntu学习笔记-基本环境的搭建(ssh的安装,SecureCRT连接,vim的安装及使用、jdk的安装)
- NuGet学习笔记(1)——初识NuGet及快速安装使用
- Python学习笔记-ubuntu安装setuptools及使用
- 虚拟机VMWare学习笔记之六 - 使用安装了操作系统盘的vmdk创建虚拟机
- Liferay Portal 6学习笔记3:Liferay IDE的安装使用
- cocos2d-x学习使用笔记一(从win32开始。。。下载、安装、配置、hello world篇)
- Oracle Database 11g SQL 开发指南学习笔记:Oracle 11g r2安装完后SQL Developer无法使用的问题
- C++/GDI+ 学习笔记(一)——安装、配置&使用
- Ubuntu操作系统学习笔记之vim 安装与使用
- php学习笔记(二十四)php使用memcache扩展库的使用和安装
- directx 学习笔记之一 如何安装并且在visual studio2010的项目中使用directx
- NuGet学习笔记(1)——初识NuGet及快速安装使用
- C++/GDI+ 学习笔记(一)——安装、配置&使用
- C++/GDI+ 学习笔记(一)——安装、配置&使用
- 【学习笔记】log4cxx安装和使用
- MEMO:Sphinx学习笔记——安装与使用入门(+在ROS中的使用)
- nutch的安装、配置以及使用(学习笔记)