Flutter通过 Coap发送组播

时间:2024-11-22 07:59:05

Flutter发送组播的流程

1.初始化 CoAP 客户端

需要初始化 CoAP 客户端并将其连接到组播地址和端口。您可以使用 CoAP 库提供的类来创建和配置客户端

final client = CoapClient(
    Uri.parse('coap://224.0.1.1:5683'), // 组播地址和端口
);

2.创建 CoAP 请求

创建一个 CoAP 请求,设置请求类型(例如 GET、POST、PUT 等)、请求路径以及任何负载或选项

CoapRequest request = CoapRequest.newGet();

 // request.addUriPath('/auth/test/$ACCESS_TOKEN/rpc'); // 设置资源路径

request.payloadString = 'Hello, CoAP Multicast!'; // 设置负载

3.发送请求

一旦请求准备就绪,您就可以使用 CoAP 客户端发送请求。发送请求后,等待服务端的响应

var responses = client.sendMulticast(request);

4.处理响应

如果收到了响应,您可以从响应中提取数据并对其进行处理,例如显示在用户界面上或执行其他操作。如果未收到响应,您可以处理超时或其他错误情况

await for (final response in responses) {

     print(response.payloadString);        

}

5.关闭连接

完成通信后,关闭 CoAP 客户端的连接,释放资源并确保网络资源的正常释放

client.close();

6.全部代码

TextButton(

     onPressed: () async {

       final client = CoapClient(

         Uri.parse('coap://224.0.1.1:5683'), // 组播地址和端口

       );

       try {

         CoapRequest request = CoapRequest.newGet();

         // 设置请求路径和负载

         // request.addUriPath('/auth/test/$ACCESS_TOKEN/rpc'); // 设置资源路径

         request.payloadString = 'Hello, CoAP Multicast!'; // 设置负载

         var responses = client.sendMulticast(request);

         await for (final response in responses) {

           print(response.payloadString);

         }

       } on Exception catch (e) {

         print('CoAP encountered an exception: $e');

       }



       client.close();

     },

     child: Text("发送组播")

),

测试数据是否发生成功

1.使用SockerTool软件进行测试

解压\\nas.nonagon\01-办公及开发软件\07-硬件开发工具\03-串口 USB CAN 网络 蓝牙调试助手\sockettool.rar,然后打开SocketTool V4.exe

2.创建组播服务

选中UDP Group后点击创建按钮,填写上上面代码中的组播地址和端口

3.测试

手机上发送内容,查看这里能否接收到,能接收到则代表成功