比如某些物联网设备,连接到网络后,会开启一个UDP,用于手机等移动设备的app搜索到,而且这个物联网设备通常会有一个默认的固定端口,我们只要通过向当前局域网的对应端口号发送消息广播,物联网接收到这个消息广播,会给我们回复数据,那么我们接收到这个数据的同时,也获取到了这个物联网设备的ip等基本的网络地址信息,从而去连接这个物联网设备。

那么怎么给局域网发送消息呢?循环遍历网段下所有地址?这个太low,效率太低,通过百度,发现可以使用单广播(单广播与多广播),把发送目标的ip改成 “255.255.255.255”,就是让路由设备给全部连接的设备发送广播消息

        try( DatagramSocket dataSocket =  new DatagramSocket() ) {//准备要发送的数据byte[] byteCmd = new byte[1024];//给byteCmd设置一些约定的信息byteCmd[0] = ...//接收消息的超时时间,以毫秒为单位dataSocket.setSoTimeout(30000);//UDP 创建要发送的数据包  用来将长度为 length 的包发送到指定主机上的指定端口。DatagramPacket senddataPacket = new DatagramPacket(byteCmd, byteCmd.length,InetAddress.getByName("255.255.255.255"), 物联网设备的端口号);//设置为广播(此处需要设置)dataSocket.setBroadcast(true);//发送数据包dataSocket.send(senddataPacket);isStopReceive = false;//下面是开启了接收消息byte[] receiveBytes = new byte[1024];//创建接受信息的包对象DatagramPacket receivePacket = new DatagramPacket(receiveBytes, receiveBytes.length);//开启一个死循环,不断接受数据while(!isStopReceive){//接收数据,程序会阻塞到这一步,直到收到一个数据包为止dataSocket.receive(receivePacket);//解析收到的数据byte[] recArr = receivePacket.getData();//判断接收到的recArr是否是自己想要的....如果是 可以把isStopReceive改成true跳出循环}}}catch (Exception e){e.printStackTrace();}

不过这个方法不适用与2.4G与5G,切记!!!

android和java 通过UDP搜索同一局域网内指定网络设备相关推荐

  1. Java可执行jar自解压jar内指定文件到指定目录

    Java可执行jar自解压jar内指定文件到指定目录 参考链接 感谢大神[手动膜拜] https://www.devx.com/tips/Tip/22124 打开慢的话可以直接看下图 需求说明 需求来 ...

  2. Python使用UDP协议实现局域网内屏幕广播

    3年前推送过一篇使用TCP协议进行局域网内屏幕广播的文章,见 Python实现局域网内屏幕广播的技术要点分析 众所周知,TCP协议尽管有良好的流量控制.拥塞控制等传输质量保证机制,但开销比较大且只能单 ...

  3. 微课--Python使用UDP协议实现局域网内屏幕广播(40分钟)

    师资培训研修班通知--Python数据采集.分析与可视化实战 开学第一课:一定不要这样问老师Python问题 在线开放课程"Python程序设计基础"第7次开课通知 智慧树大学共享 ...

  4. java网络编程 UDP通信协议实现局域网内文件的发送和接收

    要实现两台内网下的机子进行通信,首先得知道接收方的内网IP,获取IP的方式:可以打开任务管理器的以太网进行查看: 如下 也可以通过 win+r 输入cmd ,然后输入 ipconfig  回车  进行 ...

  5. Java基于socket编程实现局域网内简单通信

    运行客户端程序将创建一个客户端套接字,并与指定的服务器建立连接,接收了服务端发来的消息后关闭连接.服务端启动后会循环接收客户端连接,在接收到连接后,向该客户端发送 "Hello World! ...

  6. win7网络中能看到计算机但无法连接,win7局域网内可以看到对方计算机但无法连接怎么办...

    ‍‍ 平常我们在使用局域网的过程中有难免也出现问题,最近有些雨林木风win7用户在局域网中可以搜索到局域网内其他计算机,但是却无法连接,遇到这种情况该怎么办呢?我们可以根据以下几个步骤进行排查,下面由 ...

  7. 局域网内如何对员工上网行为进行管控

    现在企业互联网.电脑都是员工必备的办公工具,怎样确保工作时间都是在忙工作呢?而不是干自己的私事呢? Usersafe的安全终端管理工具可以很好地管理员工的上网行为.可以全面监控QQ.微信.钉钉.电脑邮 ...

  8. UDP之广播搜索局域网内设备信息

    文章目录 UDP是什么? UDP核心API DatagramSocket构造方法介绍 DatagramSocket常用方法 DatagramPacket的构造方法 DatagramPacket的常用方 ...

  9. java毕业设计——基于java+TCP+UDP的局域网聊天室系统设计与实现(毕业论文+程序源码)——局域网聊天室系统

    基于java+TCP+UDP的局域网聊天室系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+TCP+UDP的局域网聊天室系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地 ...

最新文章

  1. shell下的作业管理(转)
  2. 面试----Object类
  3. [转]《我眼中的技术高手》——邯郸学步、创作与创新
  4. 0-100之间的素数、判断素数的基本和优化方法
  5. 流包装器实现WebShell免杀
  6. CountDownLatch.countDown
  7. python3下载文件
  8. 华硕服务器显示模块,华硕远程管理模块 ASMB4-iKVM 华硕服务器主板专用 现货 IPMI...
  9. Misc混合halcon算子,持续更新
  10. datatype未定义是什么意思_TypeError:无法读取未定义的属性'then'
  11. Java垃圾回收机制概述
  12. 计算复杂度:P、NP、NP 完备
  13. android布局错,Android Studio布局错误
  14. FastCGI 工作原理
  15. 简易XML文件对比工具
  16. 对游戏编程开发的一点思考
  17. mysql多表查询分页面_mysql多表联合查询分点经验给大家
  18. sodo 赋予非管理员用户临时权限
  19. 针对linux系统中/usr/src/kernels中找不到内核源码的问题
  20. 品牌营销策略:适合初创公司的5种营销方式

热门文章

  1. alert弹出窗口,点击确认后关闭页面
  2. 彩虹代shua网仿小储云的模板 提前备份好数据
  3. java转换时间格式 yyyy-MM-dd转成yyyy年MM月dd日
  4. 初入神经网络剪枝量化4(大白话)
  5. 中央气象局天气预报接口---java实现
  6. 「ICPC World Finals 2019」何以伊名始(广义后缀自动机)
  7. vue 路由的三种模式
  8. 用java代码实现获取微信公众号用户关注列表
  9. 适合新手看的安卓开发书android studio
  10. OpenCL优化应用项目