coap:使用californium建立coap server和client的简单示例

2024-06-09 18:52

本文主要是介绍coap:使用californium建立coap server和client的简单示例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【pom.xml】

<dependency><groupId>org.eclipse.californium</groupId><artifactId>californium-core</artifactId><version>2.0.0-M7</version>
</dependency>
<dependency><groupId>org.eclipse.californium</groupId><artifactId>element-connector</artifactId><version>2.0.0-M7</version>
</dependency>
<dependency><groupId>org.eclipse.californium</groupId><artifactId>scandium</artifactId><version>2.0.0-M7</version>
</dependency>
<dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.11</version>
</dependency>

【logback.xml】

<configuration debug="false" xmlns="http://ch.qos.logback/xml/ns/logback"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://ch.qos.logback/xml/ns/logbackhttps://raw.githubusercontent.com/enricopulatzo/logback-XSD/master/src/main/xsd/logback.xsd"><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level ::: %msg%n</pattern></encoder></appender><root level="INFO"><appender-ref ref="STDOUT" /></root>
</configuration>

【MyDemo1CoapServerTest.java】

package com.chz.myCoap.demo1;@Slf4j
public class MyDemo1CoapServerTest {private static String name = MyDemo1CoapServerTest.class.getSimpleName();public static void main(String[] args) {CoapServer server = new CoapServer();// 默认端口5683server.add(new CoapResource("get_hello") {@Overridepublic void handleGET(CoapExchange exchange) {log.info("{}::handleGET: get_hello", name);exchange.respond(ResponseCode.CONTENT, "get_hello: Hello this is MyDemo1CoapServerTest");}});server.add(new CoapResource("post_hello") {@Overridepublic void handlePOST(CoapExchange exchange) {String requestPayload = new String(exchange.getRequestPayload());log.info("{}::handlePOST: post_hello, content={}", name, requestPayload);exchange.respond(ResponseCode.CONTENT, "post_hello: Hello this is MyDemo1CoapServerTest");}});server.add(new CoapResource("time") { // 创建一个资源为time 请求格式为 主机:端口\time@Overridepublic void handleGET(CoapExchange exchange) {log.info("{}::handleGET: time", name);Date date = new Date();exchange.respond(ResponseCode.CONTENT, new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date));}});server.start();}
}

【MyDemo1CoapClientTest.java】

package com.chz.myCoap.demo1;@Slf4j
public class MyDemo1CoapClientTest {private static String name = MyDemo1CoapClientTest.class.getSimpleName();public static void main(String[] args) throws URISyntaxException, IOException, InterruptedException {URI uri = new URI("coap://localhost:5683/get_hello");CoapClient client = new CoapClient(uri);CoapResponse response = client.get();if (response != null) {log.info("code: {}", response.getCode());log.info("options: {}", response.getOptions());log.info("responseText: {}", response.getResponseText());}Thread.sleep(1000L);URI uri2 = new URI("coap://localhost:5683/post_hello");CoapClient client2 = new CoapClient(uri2);String payload = "I am "+name;CoapResponse response2 = client2.post(payload, 0);if (response2 != null) {log.info("code: {}", response2.getCode());log.info("options: {}", response2.getOptions());log.info("responseText: {}", response2.getResponseText());}Thread.sleep(1000L);URI uri3 = new URI("coap://localhost:5683/time");CoapClient client3 = new CoapClient(uri3);CoapResponse response3 = client3.get();if (response3 != null) {log.info("code: {}", response3.getCode());log.info("options: {}", response3.getOptions());log.info("responseText: {}", response3.getResponseText());}}}

启动【MyDemo1CoapServerTest】,然后启动【MyDemo1CoapClientTest】
在这里插入图片描述
在这里插入图片描述

这篇关于coap:使用californium建立coap server和client的简单示例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1046017

相关文章

利用Python实现可回滚方案的示例代码

《利用Python实现可回滚方案的示例代码》很多项目翻车不是因为不会做,而是走错了方向却没法回头,技术选型失败的风险我们都清楚,但真正能提前规划“回滚方案”的人不多,本文从实际项目出发,教你如何用Py... 目录描述题解答案(核心思路)题解代码分析第一步:抽象缓存接口第二步:实现两个版本第三步:根据 Fea

Go语言使用slices包轻松实现排序功能

《Go语言使用slices包轻松实现排序功能》在Go语言开发中,对数据进行排序是常见的需求,Go1.18版本引入的slices包提供了简洁高效的排序解决方案,支持内置类型和用户自定义类型的排序操作,本... 目录一、内置类型排序:字符串与整数的应用1. 字符串切片排序2. 整数切片排序二、检查切片排序状态:

Java计算经纬度距离的示例代码

《Java计算经纬度距离的示例代码》在Java中计算两个经纬度之间的距离,可以使用多种方法(代码示例均返回米为单位),文中整理了常用的5种方法,感兴趣的小伙伴可以了解一下... 目录1. Haversine公式(中等精度,推荐通用场景)2. 球面余弦定理(简单但精度较低)3. Vincenty公式(高精度,

QT6中绘制UI的两种方法详解与示例代码

《QT6中绘制UI的两种方法详解与示例代码》Qt6提供了两种主要的UI绘制技术:​​QML(QtMeta-ObjectLanguage)​​和​​C++Widgets​​,这两种技术各有优势,适用于不... 目录一、QML 技术详解1.1 QML 简介1.2 QML 的核心概念1.3 QML 示例:简单按钮

使用Java将实体类转换为JSON并输出到控制台的完整过程

《使用Java将实体类转换为JSON并输出到控制台的完整过程》在软件开发的过程中,Java是一种广泛使用的编程语言,而在众多应用中,数据的传输和存储经常需要使用JSON格式,用Java将实体类转换为J... 在软件开发的过程中,Java是一种广泛使用的编程语言,而在众多应用中,数据的传输和存储经常需要使用j

Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例

《Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例》本文介绍Nginx+Keepalived实现Web集群高可用负载均衡的部署与测试,涵盖架构设计、环境配置、健康检查、... 目录前言一、架构设计二、环境准备三、案例部署配置 前端 Keepalived配置 前端 Nginx

SQL Server中的PIVOT与UNPIVOT用法具体示例详解

《SQLServer中的PIVOT与UNPIVOT用法具体示例详解》这篇文章主要给大家介绍了关于SQLServer中的PIVOT与UNPIVOT用法的具体示例,SQLServer中PIVOT和U... 目录引言一、PIVOT:将行转换为列核心作用语法结构实战示例二、UNPIVOT:将列编程转换为行核心作用语

Python logging模块使用示例详解

《Pythonlogging模块使用示例详解》Python的logging模块是一个灵活且强大的日志记录工具,广泛应用于应用程序的调试、运行监控和问题排查,下面给大家介绍Pythonlogging模... 目录一、为什么使用 logging 模块?二、核心组件三、日志级别四、基本使用步骤五、快速配置(bas

使用animation.css库快速实现CSS3旋转动画效果

《使用animation.css库快速实现CSS3旋转动画效果》随着Web技术的不断发展,动画效果已经成为了网页设计中不可或缺的一部分,本文将深入探讨animation.css的工作原理,如何使用以及... 目录1. css3动画技术简介2. animation.css库介绍2.1 animation.cs

使用雪花算法产生id导致前端精度缺失问题解决方案

《使用雪花算法产生id导致前端精度缺失问题解决方案》雪花算法由Twitter提出,设计目的是生成唯一的、递增的ID,下面:本文主要介绍使用雪花算法产生id导致前端精度缺失问题的解决方案,文中通过代... 目录一、问题根源二、解决方案1. 全局配置Jackson序列化规则2. 实体类必须使用Long封装类3.