java – 执行UPNP扫描不返回飞利浦色相桥

我试图实现我自己的UpNP扫描,它主要是工作,并证明这不是我,我有一个 Windows程序,允许您发送数据包,看看有什么回应.

我在端口1900发送一个数据包到239.255.255.250,我发送以下数据:

M-SEARCH * HTTP/1.1
Host: 239.255.255.250:1900
Man: "ssdp:discover"
MX: 10
ST: ssdp:all

只需要进一步的信息,在我的Java代码(Android)我有以下,但我得到相同的响应作为数据包测试程序应用程序:

try
        {
            byte[] sendData = new byte[1024];
            //byte[] receiveData = new byte[1024];
            byte[] receiveData;
            String mSearch = "M-SEARCH * HTTP/1.1\r\nHost: 239.255.255.250:1900\r\nMan: \"ssdp:discover\"\r\nMX: 10\r\nST: ssdp:all\r\n\r\n";
            sendData = mSearch.getBytes();

            DatagramPacket sendPacket = new DatagramPacket(sendData,sendData.length,InetAddress.getByName("239.255.255.250"),1900);

            DatagramSocket clientSocket = new DatagramSocket();
            clientSocket.send(sendPacket);

            while (keepGoing)
            {
                receiveData = new byte[1024];
                receivePacket = new DatagramPacket(receiveData,receiveData.length);
                clientSocket.receive(receivePacket);

                String response = new String(receivePacket.getData());

                if (response == null || response.length() == 0)
                {
                    keepGoing = false;
                }
                else
                {
                    iupnpScan.updateText(response);
                }

            }
            iupnpScan.complete(true);
            return true;
        }
        catch (UnkNownHostException ex)
        {
            Log.e("MainActivity","UnkNown Host Exception: " + ex.toString());
        }
        catch (SocketException ex)
        {
            Log.e("MainActivity","Socket Exception: " + ex.toString());
        }
        catch (IOException ex)
        {
            Log.e("MainActivity","IO Exception: " + ex.toString());
        }
        iupnpScan.complete(false);
        return false;

我正在收到一些设备回来,比如我的智能电视,路由器和NAS,但是Phyips Hue Bridge从来没有在回复中返回.

飞利浦色相桥是否实现了UpNP的不同之处,我可以看到,现在所发现的响应是什么,需要什么才能找到.

谢谢

解决方法

虽然 Philips site笔记支持UPnP,但我不知道它是否为真.

我会尝试扫描整个网络并通过IP测试IP.是的,我知道,这不是标准所说的,但现实有时是疯狂的.

这个发现已经在this way实施了.

我过去编程了一个网络搜索(寻找一个RaspBerry PI),我可以使用的最好的方法是匹配的MAC地址与我已知的地址开始.幸运的是,Philips publish their MAC addresses range.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


应用场景 C端用户提交工单、工单创建完成之后、会发布一条工单创建完成的消息事件(异步消息)、MQ消费者收到消息之后、会通知各处理器处理该消息、各处理器处理完后都会发布一条将该工单写入搜索引擎的消息、最终该工单出现在搜索引擎、被工单处理人检索和处理。 事故异常体现 1、异常体现 从工单的流转记录发现、
线程类,设置有一个公共资源 package cn.org.chris.concurrent; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /** * @Descrip
Java中的数字(带有0前缀和字符串)
在Java 9中使用JLink的目的是什么?
Java Stream API Filter(过滤器)
在Java中找到正数和负数数组元素的数量
Java 9中JShell中的不同启动脚本是什么?
使用Java的位填充错误检测技术
java中string是什么
如何使用Java中的JSON-lib API将Map转换为JSON对象?
Java菜单驱动程序以检查数字类型
使用Junit的Maven项目 - 检查银行账号
JAVA编程基础
在Java中使用throw、catch和instanceof来处理异常
在Java中,将数组分割为基于给定查询的子数组后,找到子数组的最大子数组和
如何在Java中从给定的字符串中删除HTML标签?
在PHP中,IntlChar getBlockCode()函数的翻译如下:
如何在Android中实现按下返回键再次退出的功能?
如何使用Java中的流式API解析JSON字符串?
Java中的模式类