android局域网 广播包,lancomm: Android局域网通讯,基于UDP和TCP封装的局域网通讯协议框架,处于同一个局域网下的设备,可以相互发现,可以发送广播消息,可以发送点对点消息。...

LAN-COMM

1 功能简介

LAN-COMM,即LAN Communicate,局域网通讯技术,基于同一局域网下的设备,相互发现与通讯。

LAN-COMM主要用于在同一局域网下的设备之间的相互发现与通讯。

您可以:

主动搜索位于同一局域网下的同一设备;

通过开关控制是否被其他设备搜索到;

给处于同一局域网下的所有设备发送广播消息;

给指定设备发送点对点消息;

监听广播消息、监听点对点消息;

监听其他设备上下线通知消息;

demo示例:

3454e9c5e57aa1e5e593e458eca3203c.gif

2 使用说明

2.2 搜索

通过LanCommManager.getSearcher()您可以获取LAN-COMM的搜索器,通过搜索器,您可以主动搜索当前局域网下的所有设备。

也可以通过开关配置是否可以被其他设备搜索到。

搜索其他的设备:

LanCommManager.getSearcher().startSearch(new SearchListener() {

@Override

public void onSearchStart() {

//开始搜索

}

@Override

public void onSearchedNewOne(Device device) {

//搜索到设备

Log.d(TAG, "onSearchedNewOne() " + device.toString());

}

@Override

public void onSearchFinish(HashMap devices) {

//搜索完成

//devices为搜索到的所有设备,它的key为此设备的IP地址

}

});

设置是否可以被其他设备搜索

//设置可以被其他设备搜索

LanCommManager.getSearcher().setCanBeSearched(true);

//设置不能被其他设备搜索

LanCommManager.getSearcher().setCanBeSearched(false);

当前是否可以被其他设备搜索

boolean canBeSearch = LanCommManager.getSearcher().isCanBeSearched();

2.2 消息接收

通过LanCommManager.getReceiver(); 您可以获取到LAN-COMM的消息接收器,通过接收器,可以接收到其他设备发送的广播消息和点对点消息,以及其他设备上下线的通知消息。

接收与不接收其他设备发送的广播消息和点对点消息

DataListener listener = new DataListener() {

@Override

public void onBroadcastArrive(CommData commData) {

//接收到广播消息

}

@Override

public void onCommandArrive(CommData commData) {

//接收到点对点消息

}

};

//接收其他设备发送的广播消息和点对点消息

LanCommManager.getReceiver().addDataListener(listener);

//移除其他设备发送的广播消息和点对点消息的监听

LanCommManager.getReceiver().removeDataListener(listener);

2.3 广播消息

通过LanCommManager.Broadcaster(); 您可以获取到LAN-COMM的广播器,通过广播器,可以给所有设备发送广播消息。

通过广播器发送的消息,可以在[2.2 消息接收]中的消息接收器中接收到发送的消息,自己发送的消息自己也是可以接收到的。

发送广播消息

LanCommManager.getBroadcaster().broadcast("Hello LAN-COMM".getBytes());

2.4 点对点消息

通过LanCommManager.getCommunicator(); 您可以获取到LAN-COMM的点对点通讯器,可以给指定的设备发送消息。

发送的点对点消息可以在[2.2 消息接收]中的消息接收器中接收到发送的消息。

发送点对点消息

//

Command command = new Command().setDestIp(device.getIp())

.setData("我点你了,哈哈~".getBytes())

.setCallback(new Command.Callback() {

@Override

public void onSuccess() {

//发送成功

Trace.d(TAG, "send success");

}

@Override

public void onError(int code) {

//发送失败

Trace.d(TAG, "onError() " + code);

}

@Override

public void onReceived() {

//对方已收到

Trace.d(TAG, "对方已收到");

}

});

LanCommManager.getCommunicator().sendCommand(command);

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值