我正在尝试构建一个将两个或多个设备连接为客户端/服务器的android应用程序(使用套接字)。
但问题是客户端设备用户需要手动将服务器设备的IP地址与服务器连接。但是从客户端我不知道服务器IP地址。而且我不想手动输入它。
有没有办法获得使用相同应用程序并在同一网络上的服务器设备的IP地址(以编程方式)?
非常感谢任何帮助。 谢谢高级。
答案 0 :(得分:0)
终于尝试了许多方法之后,我得到了一个解决方案
使用UDP广播进行网络发现(贷记到this documentation)
(感谢@Fildor建议您实施此服务)。
解决方案
使用UDP数据包并进行广播!但是,这项技术并不是最佳选择,但是只要我们留在一个网络中,这就不会成为问题。 UDP数据包非常容易使用。
服务器实施
客户实施
在随机端口上打开套接字。
尝试广播到默认广播地址(255.255.255.255)
遍历所有计算机的网络接口并获取它们 广播地址
将循环内的UDP数据包发送到接口的广播 地址
等待回复
收到回复后,请检查包装是否有效
有效时,获取包裹的发件人IP地址;这是 服务器的IP地址
关闭插座!我们不想在某人身上留下开放的随机端口 其他人的计算机