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

4 篇文章 0 订阅

【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/logback
               https://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();// 默认端口5683

      server.add(new CoapResource("get_hello") {
         @Override
         public 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") {
         @Override
         public 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
         @Override
         public 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】
在这里插入图片描述
在这里插入图片描述

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

A圳技术

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值