版权声明:本文为博主原创文章,转载请注明出处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的源码解析。