NB-IoT 之 CoAP 开源 libcoap 服务器客户端的安装使用 | 学习笔记

简介: 快速学习 NB-IoT 之 CoAP 开源 libcoap 服务器客户端的安装使用

开发者学堂课程【嵌入式之 RFID 开发与应用2020版:NB-IoT 之 CoAP 开源 libcoap 服务器客户端的安装使用】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/665/detail/11197


NB-IoT 之 CoAP 开源 libcoap 服务器客户端的安装使用

内容介绍:

一、Libcoap 安装方法

二、Libcoap 安装过程

三、简单方法补充

 

一、安装方法

讲完 CoAP 协议之后,相信大家肯定是希望能不能够去安装一个 CoAP 的一个客户端或者服务器来体验一下这个协议到底是怎么用的、魅力是怎么样。PPT 里面没有专门讲协议站的安装,这里补充一些内容:
首先到 github 里面去搜,其中 CoAP 的开源软件有很多:比如说马上要使用到的 libcoap ,还有 coapthonPepsi ,后面还会用到的 coopper ,即基于 JS 去做的;还有 icoap 、ecoap 等诸如此类,就简单了解一下,不是每个都需要去熟悉。看一下几个典型示例。

到 github 搜 libcoap ,回车。发现是 RFC 7252。在 PPT 里面讲协议时候就讲过,下方其他这些都不是,不要点错了。点进 RFC 7252,直接去克隆,也可以打包下来。这部分已经提前完成克隆,也安装完毕。

图片8.png

 

二、安装过程:

1.从 github.com 找到 libcoap 源码,克隆下载下来。

2.编译;配置生成 configure 。编译非常简单,这个地方就不进行操作演示。配置其实就是这里面有一个 comfigure 文件。comfigure 的这个版本的并不是一开始就有的,需要执行一个脚本:./autogen.

3.执行 comfigure。配置后面的这个参数并不是必须的,如果后面假设有一些模块确实是编译的时候,提示没有或者提示缺少,他让执行速度 IP get indoor 回去安装一下。如果不安装的话,它会缺失一些东西。所以说这个后面的参数主要是两个方面,一个是安装路径, --prefix=/xx/yy/ 安装路径;另外一个是把那些不用的这些包禁止掉。除此之外的其他的没有必要。

4.make;make install 。之后,在这个目录下查看编译的这个结果。生成的库和命令都在这里,命令呢就这样几个:一个是 CoAP 的服务器,一个是 CoAP 客户端。获取到后就可以运行了。

图片9.png


三、简单安装方法补充

需要到另外一个网站 sourceforge.net/projects。

1. 在网站中搜索一下 libcoap ,在下面找到 libcoap  ,然后直接点 Download 下载。

图片10.png

这个下载的包的编译方法,跟刚才在 github 上的那个编译方法还不太一样,这个更简单一些,下载稍微有点慢。已经提前下了一个,会提供给大家。在相关资料- coap 里。取消掉正在下载的内容,,因为已经下过了, libcoap-4.1.1.tar 的这个版本。其实版本都一样,把它拷到虚拟机里面去。因为一般用的是克隆的,可以直接解压。解压完成之后,直接进到这个 libcoap-4.1.1 里面。进去之后就非常简单了:里面直接就有 configure ,所以直接配置,直接执行就可以了。这个就很简单,可以直接配置, buid 不需要,out 脚本也不需要执行。配置完后直接 make 。Make 完之后很简单,它生成的这些东西就不需要安装了,因为我已经安装了一个,就可以直接去启动终端和客户端来进行测试。

图片11.png

2.测试,自测。

这里有一个比较尴尬的问题:怎么进行测试。因为它既有客户端也有服务的,所以可以进行自测首先点 coap-sever ,让服务器运行起来,然后就可以跟服务器获取一些内容,比如 -m 是 get put。因为它是跟我们的 MQTT 是同属应用,所以要写 coap://192.168.1.13。就相当于请求了这个 server 里面默认的一个文件。包括在请求的时候提示的版本,和请求方式、talking 的长度,以及消息 ID 等。

除此以外,还有另外一种方法,下节课进行介绍,是使用 js,通过浏览器的方式去访问这个服务器的方法。

相关文章
|
11天前
|
缓存 监控 Java
Java Socket编程最佳实践:优化客户端-服务器通信性能
【6月更文挑战第21天】Java Socket编程优化涉及识别性能瓶颈,如网络延迟和CPU计算。使用非阻塞I/O(NIO)和多路复用技术提升并发处理能力,减少线程上下文切换。缓存利用可减少I/O操作,异步I/O(AIO)进一步提高效率。持续监控系统性能是关键。通过实践这些策略,开发者能构建高效稳定的通信系统。
|
11天前
|
IDE Java 开发工具
从零开始学Java Socket编程:客户端与服务器通信实战
【6月更文挑战第21天】Java Socket编程教程带你从零开始构建简单的客户端-服务器通信。安装JDK后,在命令行分别运行`SimpleServer`和`SimpleClient`。服务器监听端口,接收并回显客户端消息;客户端连接服务器,发送“Hello, Server!”并显示服务器响应。这是网络通信基础,为更复杂的网络应用打下基础。开始你的Socket编程之旅吧!
|
11天前
|
Java
Java Socket编程与多线程:提升客户端-服务器通信的并发性能
【6月更文挑战第21天】Java网络编程中,Socket结合多线程提升并发性能,服务器对每个客户端连接启动新线程处理,如示例所示,实现每个客户端的独立操作。多线程利用多核处理器能力,避免串行等待,提升响应速度。防止死锁需减少共享资源,统一锁定顺序,使用超时和重试策略。使用synchronized、ReentrantLock等维持数据一致性。多线程带来性能提升的同时,也伴随复杂性和挑战。
|
11天前
|
安全 Java 网络安全
Java Socket编程教程:构建安全可靠的客户端-服务器通信
【6月更文挑战第21天】构建安全的Java Socket通信涉及SSL/TLS加密、异常处理和重连策略。示例中,`SecureServer`使用SSLServerSocketFactory创建加密连接,而`ReliableClient`展示异常捕获与自动重连。理解安全意识,如防数据截获和中间人攻击,是首要步骤。通过良好的编程实践,确保网络应用在复杂环境中稳定且安全。
|
11天前
|
Java 数据安全/隐私保护
深入剖析:Java Socket编程原理及客户端-服务器通信机制
【6月更文挑战第21天】Java Socket编程用于构建网络通信,如在线聊天室。服务器通过`ServerSocket`监听,接收客户端`Socket`连接请求。客户端使用`Socket`连接服务器,双方通过`PrintWriter`和`BufferedReader`交换数据。案例展示了服务器如何处理每个新连接并广播消息,以及客户端如何发送和接收消息。此基础为理解更复杂的网络应用奠定了基础。
|
9天前
|
Java Android开发
Java Socket编程示例:服务器开启在8080端口监听,接收客户端连接并打印消息。
【6月更文挑战第23天】 Java Socket编程示例:服务器开启在8080端口监听,接收客户端连接并打印消息。客户端连接服务器,发送"Hello, Server!"后关闭。注意Android中需避免主线程进行网络操作。
33 4
|
2天前
|
消息中间件 Serverless 网络性能优化
消息队列 MQ产品使用合集之客户端和服务器之间的保活心跳检测间隔是怎么设置的
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
5天前
|
前端开发 API 开发工具
视觉智能开放平台产品使用合集之人脸识别客户端如何直接访问服务器进行人脸识别并传递视频流
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
|
8天前
|
缓存 负载均衡 应用服务中间件
Nginx 是一个高性能的开源反向代理服务器和 Web 服务器
Nginx 是一个高性能的开源反向代理服务器和 Web 服务器
13 0
|
11天前
|
网络协议 Java Linux
探索Java Socket编程:实现跨平台客户端-服务器通信的奥秘
【6月更文挑战第21天】Java Socket编程示例展示了如何构建跨平台聊天应用。服务器端使用`ServerSocket`监听客户端连接,每个连接启动新线程处理。客户端连接服务器,发送并接收消息。Java的跨平台能力确保代码在不同操作系统上无需修改即可运行,简化开发与维护。