CoAP学习笔记——Libcoap安装和使用

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

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://10.13.11.85

【-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 <[email protected]>

4.总结

libcoap安装过程需要注意——libcoap并没有直接提供configure文件,需要使用autoconf工具生成configure文件,生成configure文件之后的安装方法和其他源代码形式的安装方法完全相同。libcoap中的coap-client是一个非常使用的工具,可通过控制台设置不同的参数,该工具可与firefox copper插件配合使用。

时间: 2024-11-09 03:46:14

CoAP学习笔记——Libcoap安装和使用的相关文章

CoAP学习笔记——nodeJS node-coap安装和使用(Linux平台)

 0 前言 本文说明如果安装和使用node-coap.CoAP是专门为物联网系统开发的面向网络的应用层协议栈,CoAP建立在UDP协议之上尽可能减少网络开销,又具有HTTP Restful类型的特性.node-coap使用nodejs实现了coap的客户端和服务器端. [测试环境]--ubuntu/Linux [相关博文] [CoAP协议学习--CoAP基础] [CoAP学习笔记--CoAP资源发现] [CoAP学习笔记--服务器端繁忙时的处理请求流程] [树莓派学习笔记--webiopi安装与

CoAP学习笔记——nodeJS node-coap安装和使用(windows平台)

0 前言 本文尝试在windows平台中搭建基于nodeJS的CoAP Server. linux平台搭建和使用过程可参考--CoAP学习笔记--nodeJS node-coap安装和使用(Linux平台) [测试环境]--windows [相关博文] [CoAP协议学习--CoAP基础] [CoAP学习笔记--CoAP资源发现] [CoAP学习笔记--服务器端繁忙时的处理请求流程] [树莓派学习笔记--webiopi安装与入门]webiopi中集成了CoAP Server,可以方便地通过CoA

CoAP学习笔记——nodeJS node-coap返回JSON数据包

0 前言 本文说明如何使用node-coap返回JSON数据包.CoAP是专门为物联网系统开发的面向网络的应用层协议栈,CoAP建立在UDP协议之上尽可能减少网络开销,又具有HTTP Restful类型的特性.node-coap使用nodejs实现了coap的客户端和服务器端. [测试环境]--ubuntu/Linux [相关博文] [CoAP协议文档--The Constrained Application Protocol (CoAP)] [CoAP协议学习--CoAP基础] [CoAP学习

CoAP学习笔记——STM32平台上实现CoAP Server

0.前言 CoAP是受限制的应用协议(Constrained Application Protocol)的代名词.在当前由PC机组成的世界,信息交换是通过TCP和应用层协议HTTP实现的.但是对于小型设备而言,实现TCP和HTTP协议显然是一个过分的要求.为了让小设备可以接入互联网,CoAP协议被设计出来.CoAP是一种应用层协议,它运行于UDP协议之上而不是像HTTP那样运行于TCP之上.CoAP协议非常小巧,最小的数据包仅为4字节. 本文将使用STM32平台实现一个CoAP Server D

node.js在windows下的学习笔记(1)---安装node.js

1.首先打开http://www.nodejs.org/ 2.选择DOWNLOADS,跳转到下面的画面,我的系统是windows7的32位.所以选择.msi的32bit版本. 3.下载后,得到一个5.43MB大小的安装包, 4.运行安装包 点击next 打个勾,点击next 选择安装目录 最后,安装成功啦 node.js在windows下的学习笔记(1)---安装node.js,布布扣,bubuko.com

nodejs学习笔记之安装、入门

由于项目需要,最近开始学习nodejs.在学习过程中,记录一些必要的操作和应该注意的点. 首先是如何安装nodejs环境?(我用的是windows 7环境,所以主要是windows 7的例子.如果想看linux下的安装可以参考http://www.cnblogs.com/meteoric_cry/archive/2013/01/04/2844481.html) 1. nodejs提供了一些安装程序,可以去官网(http://nodejs.org/download/)按照自己的机器进行下载,下载完

[Linux] 学习笔记之安装学习环境(sshd, lrzsz)

紧接前一篇,在VMWare安装完Linux,这个时候我们要使用远程工具连接到虚拟机上去了,以前一直使用Putty,后来到新公司之后,推荐使用SecureCRT,使用之后,觉得效果不错,但是每次连接都失败,linux新手伤不起,在网上搜啊搜,终于找到解决办法.   搜索了很多资料之后,发现是由于我未在Linux上安装ssh服务导致无法使用SecureCRT连接. 1. 可以使用ssh localhost对此进行测试,具体使用如下: 2. 使用apt-get或者yum安装ssh服务,具体哪种操作系统

MongoDB 学习笔记一 安装以及基础命令

一.MongoDB安装配置 1.获取最新版本: wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.0.2.tgz 2.解压缩即可执行 tar zxvf mongodb-linux-x86_64-2.0.2.tgz tar zxvf mongodb-linux-x86_64-2.0.2.tgz cd /usr/mongodb-linux-x86_64-2.0.2/bin 但是在运行前,需要创建mongodb需要的存放数据和日志的

python学习笔记1——安装python

python学习笔记1--安装python centos和ubuntu的python2.7的安装方法参考:http://daixuan.blog.51cto.com/5426657/1767325 1.查看当前python版本并且 [[email protected] ~]# python -V Python 2.6.6 2.安装eple-release扩展源 [[email protected] ~]# yum install -y epel-release 3.安装pip [[email p