如何在网络上找到特定桌面的IP地址?

时间:2016-04-27 15:41:11

标签: java android sockets networking

我正在编写一个由两部分组成的应用程序。桌面和android。有一个桌面和几个Android设备。 (不知道计数。)我想在桌面与TCP之间传达Android设备。但是,Android设备不知道桌面的LAN IP地址。

我有两种方式:

1-Desktop应用程序在启动时更改本地IP地址。所以android设备知道ip地址。 (我使用该IP地址编码)

2-Desktop应用程序总是尝试将IP地址(192.168.0.1 - 192.168.0.255)连接到已发送桌面的IP地址。当一个Android设备连接到网络接受连接然后知道桌面的IP。

但两种方式都存在一些问题。

首先,您必须是管理员才能更改lan ip。因此使用java运行命令为admin是一个问题。因为如果我这样做,当用户启动程序时,uac总是要求它。

第二,我认为会出现性能问题,因为应用总是试图连接。执行此操作,当android设备连接和dhcp给它192.168.0.5,但循环是在192.168.0.150。所以android设备必须等待连接。

有比这更好的方法吗?

2 个答案:

答案 0 :(得分:1)

看看这篇文章Network discovery in Java using multicasting 我认为这是最好的方法。

  1. 服务器将侦听来自客户端的广播消息
  2. 客户端发送请求服务器ip的广播请求
  3. 服务器接收请求并使用服务器IP回复。

答案 1 :(得分:0)

您可以使用主机名。如果网络配置正确,即使主机名发生更改,主机名也将指向正确的IP