社区
Android
帖子详情
Android设备如何知道wifi局域网内有多少台主机?
a220315410
2011-06-29 06:54:49
Android设备应该通过何种方式,才能枚举局域网内的所有主机(这里的主机主要是指Android设备)呢?靠发送广播么?还是framework层有提供相关的API支持?还是必须依赖于native层的开发?
...全文
2313
13
打赏
收藏
Android设备如何知道wifi局域网内有多少台主机?
Android设备应该通过何种方式,才能枚举局域网内的所有主机(这里的主机主要是指Android设备)呢?靠发送广播么?还是framework层有提供相关的API支持?还是必须依赖于native层的开发?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
iewell
2013-11-28
打赏
举报
回复
希望楼主能给个demo,如何解决这个问题的 十分感谢!iewell@qq.com
小怪兽打葫芦娃
2013-07-15
打赏
举报
回复
楼主能给一个demo吗?我也在做这个 512573717@qq.com
a220315410
2011-07-11
打赏
举报
回复
最终还是选择了udp广播。
虽然异步socket连接的速度的确比阻塞型的快很多,但是,还是架不住网络糟糕的情况啊。扫一下全部子网IP地址(254个),慢的时候要一分钟的样子,吃不消啊。
a220315410
2011-07-01
打赏
举报
回复
[Quote=引用 9 楼 fontlose 的回复:]
操作有点频繁和占资源了,如果你有路由密码和路由支持IP查询的话直接打开路由页面获取网页就行了
比如可以直接可以获取http://192.168.2.1/DEV_device.htm
[/Quote]
这个很难保证。。。。。。因为公司的环境只是开发环境,以后的运行环境会怎么样,难说啊
fontlose
2011-07-01
打赏
举报
回复
操作有点频繁和占资源了,如果你有路由密码和路由支持IP查询的话直接打开路由页面获取网页就行了
比如可以直接可以获取http://192.168.2.1/DEV_device.htm
a220315410
2011-07-01
打赏
举报
回复
[Quote=引用 7 楼 fontlose 的回复:]
恩 这个还是要真机实际测才行
[/Quote]
我使用的一直是真机。
不过,公司的wifi网络好像真的不是很好,两台平板电脑互ping的时候,经常出现1000毫秒以上的延迟。
目前关于如何获知局域网内的其他设备,我有两个方案:
1.UDP广播,AP在运行的过程中,不停的发送UDP广播(例如每一秒钟一次),然后接收端每10秒检查一次收到的广播包,如果发现过去的10秒钟内接受到过某个IP发送的广播包,则认为这个IP所在的机器上正在运行我的AP(简单的来说,就是这个机器在线),接收端可以和它通信。考虑到网络的丢包率的话,可以提高发送端的发送频率或者增大接收端的扫描间隔,来提高可靠性。
2.使用TCP轮询。通过本机IP和子网掩码,计算本子网内所有可能的IP地址,轮询这些IP地址,尝试Socket.connect(SocketAddress remoteAddr, int timeout)来进行连接,能连上则认为机器在线。超时则判断机器离线。不过,这种情况下,timeout的值设置得小的话,则在网络情况不佳(就以我们公司的wifi网络为例),容易遗漏设备,timeout值设置过大,则轮询花费的时间太多。TCP的好处在于丢包的问题得以解决,但是轮询太费时间,利用多线程的话,的确可以缩短轮询时间,但是造成的负荷又太大。
有谁能给我个更好的方案啊?
fontlose
2011-07-01
打赏
举报
回复
恩 这个还是要真机实际测才行
a220315410
2011-07-01
打赏
举报
回复
昨天尝试了udp广播,udp本来就是不可靠的协议,再加wifi无线网络的不可靠性,根据我的试验,在我们公司的wifi网络下,基本丢包率在50%上下,真的不是很靠谱。。。
a220315410
2011-06-30
打赏
举报
回复
我使用的就是真机,看样子如你所说,的确要装busybox了。
现在,通过google提供的WifiManager类,我已经可以获取当前设备的IP,网关,和子网掩码。这样的话,我已经可以计算出,当前局域网内所有可能的IP地址。
不过使用ping 和 arp -a 这意味着我需要新建一大堆的进程(每ping一次,一个进程,加上arp的进程,假设子网掩码为255,255,255,0,那样的话,总计创建了256条进程),这种方案是不是对于性能不利呢?
fontlose
2011-06-29
打赏
举报
回复
[Quote=引用 2 楼 a220315410 的回复:]
arp -a命令是显示本机的ARP缓存表,如果设备不曾连接过局域网内的其他设备的话,arp -a除了返回路由器,别的地址应该都不会返回吧?
而且我使用"adb shell arp" 的结果是arp not found。
[/Quote]
是的 所以前面要一个一个ip试这ping,最后把arp -a就可以显示到在线的ip了
arp not found。不要用模拟器,用真机试试。我用开发板有arp命令。没有就要装busybox了,有很多linux的常用命令
jeky_zhang2013
2011-06-29
打赏
举报
回复
没用过WIFI ,帮顶下
a220315410
2011-06-29
打赏
举报
回复
[Quote=引用 1 楼 fontlose 的回复:]
在双方没协议的情况下 试试循环Runtime.getRuntime().exec("ping "+ip+"-i 1 -c 2");ping每个IP
Runtime.getRuntime().exec("arp -a >"+savefile);再去处理savefile这个文件
另外就是发送udp广播了,请求方将自身ip和命令广播出去,设备收到命令将自身ip用tcp/udp发送给请求方。
……
[/Quote]
arp -a命令是显示本机的ARP缓存表,如果设备不曾连接过局域网内的其他设备的话,arp -a除了返回路由器,别的地址应该都不会返回吧?
而且我使用"adb shell arp" 的结果是arp not found。
fontlose
2011-06-29
打赏
举报
回复
在双方没协议的情况下 试试循环Runtime.getRuntime().exec("ping "+ip+"-i 1 -c 2");ping每个IP
Runtime.getRuntime().exec("arp -a >"+savefile);再去处理savefile这个文件
另外就是发送udp广播了,请求方将自身ip和命令广播出去,设备收到命令将自身ip用tcp/udp发送给请求方。
每个设备要建立Socket监听广播才可以。
Android
WiFi
Tools v3.5.1 build 129
局域网
扫描工具高级版
WiFi
Tools是一个强大的网络工具,用于加速和设置网络。有助于快速检测任何计算机网络问题、IP 地址检测和提高网络性能。这是每位用户、IT 专家和网络管理员必备的应用程序,该应用程序结合了通常在您的
台
式 PC 上找到的最流行的网络实用程序。当您在数百英里之外(即不工作)时,工具将帮助您轻松解决网络问题或优化网络连接
WiFi
Tools工具具有简单、直观的界面,因此您可以在几秒钟内收到有关您网络的完整信息,找出内部或外部IP(具有“我的IP”功能)、SSID、BSSID、广播地址、网关、网络掩码、国家、地区、城市、提供商的地理坐标(经纬度)、whois等基本信息。IP 工具应用程序提供对管理员和用户经常在其计算机上使用的最流行的网络实用程序的访问。 特点描述 • LAN 扫描仪 • 端口扫描仪 • DNS 查找 • Whois – 提供有关网站及其所有者的信息 • 路由器设置页面 • Traceroute •
WiFi
分析仪 • 具有“我的 ip”功能的 IP 地址 • 连接日志 • IP 计算器 • IP 和
主机
转换器 •还有更多…
两
台
手机
wifi
互连源码
本项目是一个安卓手机之间通过
wifi
通讯的项目源码,包括安卓客户端源码和安卓服务端源码。需要两个安卓端都在一个
局域网
内,并且先启动服务端,两
台
手机
wifi
互连,手机相互通信的源码
WIFI
模块 漫游 wince linux
Android
xp
支持漫游的
wifi
模块 支持wince linux
Android
xp系统 sdio spi接口 支持8/16位单片机
基于
Android
的udp聊天工具
1)实现了基本上的注册,登录,聊天功能。并加入了发送超时以及用户是否在线的心跳测试机制。 2)NetMsgServer运行于PC,NetMsg运行在
Android
手机或者模拟器上。
wifi
网络验证成功。 3)对于模拟器需要将模拟器的4568端口映射到PC机上,否则模拟器接收不到
主机
信息。启动模拟器后,在cmd中输入以下命令 telnet localhost 5554 redir add udp:4568:4568 4)配置文件在ConstantData.java中,请将SERVER_ADDR修改为你自己的
主机
地址 5)该程序仅仅在
局域网
内验证有效。非
局域网
环境如3G网络手机端接收不到服务的UDP数据包,目前该问题正在解决中,如有
知道
的大侠请指教。 6)本人联系方式:QQ54476167
android
p2p socket通信
wifi
局域网
文字信息聊天 我的资源里面还有
局域网
语音通话 以及
局域网
文件传输
Android
80,491
社区成员
91,377
社区内容
发帖
与我相关
我的任务
Android
移动平台 Android
复制链接
扫一扫
分享
社区描述
移动平台 Android
android
android-studio
androidx
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章