UDPSender 一个基于NIO的UDP发送器/接收器

版权声明:本文为博主原创文章,转载请注明出处http://blog.csdn.net/qq137722697。 https://blog.csdn.net/qq137722697/article/details/72802898

UDPSender

最新版见github地址:https://github.com/huangdali/UDPSender

基于NIO的UDP发送器(也可以接收哦)

使用场景:非常适合智能家居中android端与智能设备间udp通讯,它可是非常高效的喔(因为它是基于NIO封装的)

尊重原创,转载请注明出处: http://blog.csdn.net/qq137722697

输入:

  • 指令byte数组
  • 目标端口号

输出:

  • UDPReuslt结果对象(包含对方IP地址、结果数组[byte类型的数组])

导入

在你项目app/build.gradle中加入如下的代码

    dependencies {
       ...
       compile 'com.jwkj:udpsender:v2.0.1'
    }

使用方法

v1.2.3 新增UDP接收器(用于直接接收数据,不用发送):

 UDPReceiver.getInstance().with(mContext)
                .setPort(9988)
                .receive(new UDPResultCallback() {
                    @Override
                    public void onNext(UDPResult result) {
                    \\处理
                    }
                });

快速上手,UDP发送器

 UDPSender.getInstance()
                .setInstructions(byteAraary)
                .setTargetPort(port)
                .send(new UDPResultCallback() {
                    @Override
                    public void onNext(UDPResult result) {
                        //do something
                    }
                });

完整的demo

UDPSender.getInstance()
                .setInstructions(byteAraary)//设置发送的指令[必须,不可为空]
                .setReceiveTimeOut(10 * 1000)//设置接收超时时间[可不写,默认为8s]--超过10s没有接收到设备就视为无设备了就可以停止当前任务了
                .setTargetPort(port)//设置发送的端口[可不写,默认为8899端口]
                .setLocalReceivePort(port)//设置本机接收的端口[可不写,默认为8899端口]
                .schedule(2, 3000)//执行2次,间隔三秒执行
                .send(new UDPResultCallback() {
                    /**
                     * 请求开始的时候回调
                     */
                    @Override
                    public void onStart() {

                    }

                    /**
                     * 每拿到一个结果的时候就回调
                     *
                     * @param result 请求的结果
                     */
                    @Override
                    public void onNext(UDPResult result) {

                    }

                    /**
                     * 请求结束的时候回调
                     */
                    @Override
                    public void onCompleted() {

                    }

                    /**
                     * 当发生错误的时候回调
                     *
                     * @param throwable
                     */
                    @Override
                    public void onError(Throwable throwable) {

                    }
                });

关闭任务

UDPSender.getInstance().stop();

UDPReslt

public class UDPResult {
    /**
     * 对方ip地址
     */
    private String ip;
    /**
     * 对方返回的结果
     */
    private byte[] resultData;
}

最后

您的star是我继续开源的动力喔

github地址:https://github.com/huangdali/UDPSender

有需要了解源码的请留言,我有空就专门写一篇关于UDPSender的源码解析。

猜你喜欢

转载自blog.csdn.net/qq137722697/article/details/72802898