libCoAP的源码以及实现

来源:互联网 发布:产品经理数据分析手册 编辑:程序博客网 时间:2024/05/29 02:31

  首先在github上下载源码,目前最新的版本是4.1.2 https://github.com/obgm/libcoap,可以直接在linux环境下 git clone https://github.com/obgm/libcoap。然后解压 tar …………….,之后需要生成MIkefile文件,命令是 aclocal; autoconf; automake –add-missing; ./configure; make;make install,程序开发人员只需要写一些 简单的含有预定义宏的文件,由autoconf根据一个宏文件生成configure,由automake根据另一个宏文件生成Makefile.in, 再使用configure依据Makefile.in来生成一个符合惯例的Makefile。这个过程不了解的可以去网上看一下,有很多,注意一下的就是,需要把configure.scan文件改成configure.in文件后再执行./configure命令。在这些命令期间可能会提示你各种文件没有安装,直接yum install 文件 就好。
  说一下我遇到的最难的问题吧,在执行./configure的时候,遇到了一个错误,就是提示我的openssl版本太低,也就是openssl version >=1.1.0 -> No。 然后我更新了openssl,这个过程也有很多教程,值得一提的是,我最后完成更新并加入软链接,输入命令 openssl version时,确实提示我的版本是1.1.0e ,已经是大于1.1.0的版本,但执行./configure的时候还是会出现我的版本过低的错误,这是因为我们没有添加临时环境变量,使得执行configure的时候仍然将以前版本的参数赋值给它,所以这一段永远过不去,我试着改变configure脚本里面的判断语句这里写图片描述,将它改成=1.0.1,这样做只会./configure通过,但是make时候仍然会出错,而且不知错误原因,所以又找到另外一种办法,就是在这里这里写图片描述,openssl_version是被右侧赋值的pkg-config是一个命令,在终端执行之后会返回你的openssl版本,我执行之后果然是返回老的版本号,在查了一下pkg-config的作用之后,发现他是返回pkgconfig文件夹下所有.PC文件结尾的版本号,这样我们就清楚原因了,只需要添加环境变量到这个文件下就可以了export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/openssl/lib/pkgconfig 当然,pkgconfig这个文件路径需要自己确认一下,我的是在这里,这是临时改变的环境变量,毕竟我们只需要编译成功就好了,以后就用不到了。
  编译成功后,会发现example文件夹下多了几个可执行文件,首先打开一个终端,cd到example文件夹下面,执行./coap-server,打开服务器,然后再打开一个终端,执行./coap-client,启动客户端,可以看到

这里写图片描述
右侧客户端链接成功,给了你CoAP协议的格式,以及一些命令作用和输入格式。[ ]里面是输入服务器的地址,一般是127.0.01 。
同时也可以在火狐上运行,同样是先打开服务器,然后在firefox中运行使用GET方法访问该服务器。GET方法需要安装Copper插件,可以在右侧工具栏中添加这里写图片描述
使用get方法
这里写图片描述