我正在编写一个由两部分组成的应用程序。桌面和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设备必须等待连接。
有比这更好的方法吗?
答案 0 :(得分:1)
看看这篇文章Network discovery in Java using multicasting 我认为这是最好的方法。
答案 1 :(得分:0)
您可以使用主机名。如果网络配置正确,即使主机名发生更改,主机名也将指向正确的IP