我如何检查我的电脑连接到我的Android设备连接到的路由器的哪个IP?

时间:2015-08-02 23:21:23

标签: java android sockets networking android-studio

我的Android设备通过wifi连接到同一个网络,我的电脑连接到路由器的电缆。我的android也通过wifi连接到路由器。

在我的路由器设置上,我在ip 10.0.0.3上看到我的android,在ip 10.0.0.2上看到我的电脑

在我的程序中,我在阵列中添加了另一个ip,仅用于测试。 我想要做的是在我的Android设备上,当我点击一个按钮循环数组并找到我的电脑连接到路由器的IP。

这就是我在onClick按钮事件中所做的:

@Override
            public void onClick(View arg0)
            {

                text = (TextView) findViewById(R.id.textView2);

                try
                {
                    int timeout = 1000;
                  for (int i = 0; i < ipaddresses.length; i++)
                  {
                      if (InetAddress.getByName(ipaddresses[i]).isReachable(timeout))
                      {
                          System.out.println(ipaddresses[i] + " is reachable");
                          text.setText("Connection success");
                          break;
                      }
                  }

                } catch (Exception e)
                {

                    text.setText("Connection Failed");
                }
            }

在ipaddresses数组中,index [0]中的第一个字符串是“10.0.0.2” 因此,当我运行我的程序时,单击按钮,它应该会发现我的电脑已连接到此IP。

但相反,它会跳到捕获并显示连接失败。

如果我知道我的电脑连接到10.0.0.2,为什么连接失败?

我尝试用线程这样做:

try
                {
                    Thread t = new Thread(new Runnable()
                    {
                        @Override
                        public void run()
                        {
                            int timeout = 1000;
                            for (int i = 0; i < ipaddresses.length; i++)

                            {
                                try
                                {
                                    if (InetAddress.getByName(ipaddresses[i]).isReachable(timeout))
                                    {
                                        System.out.println(ipaddresses[i] + " is reachable");
                                        text.setText("Connection success");
                                        break;
                                    }
                                } catch (IOException e)
                                {
                                    text.setText("Connection Failed");
                                    e.printStackTrace();
                                }
                            }
                        }
                    });
                    t.start();

                } catch (Exception e)
                {

                    text.setText("Connection Failed");
                }

但是当我是0 i = 0然后它应该到达休息时间;因为在ipaddresses中数组索引0是10.0.0.2我的pc ip地址。但相反,它正在再次进行,现在i = 1出错了。

0 个答案:

没有答案