当前位置: 首页 > news >正文

android 何如查找内网设备 IP

前沿

最近在与嵌入式设备打交道,需要对设备进行配网。发现 UpnP 服务不稳定,经常收不到设备的信息。就想着能不能通过内网查找到 IP 后,直接与设备通信,不停的请求设备信息。

1.Android 端通过 UDP 组播(Multicast)查找设备

如果嵌入式设备支持 UDP 组播,Android 端可以向 组播地址 发送查询请求,设备收到后回复自己的 IP。

Android 发送 UDP 组播请求:

fun sendMulticastRequest() {
   
    Thread {
   
        try {
   
            val multicastGroup = InetAddress.getByName("239.255.255.250") // 组播地址
            val socket = MulticastSocket(9999) // 监听端口
            socket.joinGroup(multicastGroup)

            val request = "DISCOVER_DEVICE".toByteArray()
            val packet = DatagramPacket(request, request.size, multicastGroup, 9999)
            socket.send(packet)

            val buffer = ByteArray(1024)
            val responsePacket = DatagramPacket(buffer, buffer.size)
            socket.receive(responsePacket)

            val response = String(responsePacket.data, 0, responsePacket.length)
            Log.d("UDP", "收到设备回复: $response")
        } catch (e: Exception) {
   
            e.printStackTrace()
        }
    }.start()
}

嵌入式设备(C 语言)监听组播并回复:

#define MULTICAST_GROUP "239.255.255.250"
#define MULTICAST_PORT 9999
#define RESPONSE_MSG "DEVICE_INFO:192.168.1.100:9999"

int main() {
   
    int sock = socket(AF_INET, SOCK_DGRAM, 0);
    struct

相关文章:

  • JavaScript 读取电脑复制的内容
  • android音效算法集成框架(3)
  • Spring容器生命周期详解
  • XHR.readyState详解
  • markdown 文件转 word
  • nginx反向代理示例
  • 爬虫面试题
  • HarmonyOS NEXT 关于鸿蒙的一多开发(一次开发,多端部署) 1+8+N
  • 前端技术(28) : 拖拽、粘贴和点击浏览文件上传
  • iOS rootless无根越狱检测方案
  • Python中的JSON转换:全面指南与最佳实践
  • ESLint报错:Could not find config file.
  • Git合并删除原理
  • Centos与Ubuntu系统的对比分析
  • C++进制转换的方法
  • LinuxI/O多路转接(select、poll、epoll)
  • 23种设计模式-模板方法(Template Method)设计模式
  • 基于无线的分布式温度采集报警系统设计(论文+源码)
  • SpringCould微服务架构之Docker(3)
  • QML学习 —— 17、“DelayButton 延迟按钮“之“一键三连“示例(附完整源码)
  • 深圳建设网站培训机构/网站推广排名哪家公司好
  • 怎么做网页版手机版网站/网络营销模式
  • 给公司做网站/百度搜不干净的东西
  • dw如何做商业网站/淘宝seo培训
  • 论坛网站建设需要多少钱/b站推广网站2022
  • 婚恋网站做翻译/网站排名优化需要多久