需要在Android中获取客户端服务器的IP地址,有没有更好的方法?

问题描述 投票:1回答:3

我使用插座使用同一路由器通过wifi连接两个Android平板电脑作为网络。一个是服务器,另一个是客户端。

问题在于,每次我要连接客户端平板电脑和服务器平板电脑时,我都必须在客户端平板电脑中输入服务器平板电脑的IP地址。有办法避免这种情况吗?

我还没有弄清楚如何在将服务器IP地址联网之前将服务器IP地址发送到客户端平板电脑。

我希望有一种方法可以将两个平板电脑联网,而不必知道服务器平板电脑的IP地址。

一个想法是让服务器平板电脑连接到用php编写的网站,并让该网站获取IP地址并将其存储在数据库中。接下来,我将让客户端平板电脑从该网站获取IP地址。然后,具有服务器IP的客户端平板电脑将无法连接。所有这些都避免了用户每次要连接时都必须知道IP并键入IP。

我确信其他人以前已经做了类似的事情并解决了这个问题。有什么想法吗?

android sockets networking client-server
3个回答
0
投票

我有这种Android应用程序。我所做的是使用多播网络。参见示例here

由于多播网络使用组IP,所以这是我建议的想法

  • 服务器平板电脑将充当接收器
  • 客户端将是发送者(他们将其本地IP发送到接收者)

0
投票

如果无法为服务器Android分配固定的公用IP地址,这意味着它使用DHCP获得LAN IP,则它可以从DHCP服务器要求特定的IP地址(也许您需要对路由器进行一些配置),即路由器在这里。

[另一种方法是使用反向地址解析协议(RARP),您可以通过该方法请求交换机提供具有特定MAC地址的主机的IP地址。 MAC地址对于您的服务器Android手机是固定的。

这些只是理论上可行的。您需要查看要在Android手机中调用的API。


0
投票

连接后,您可以检索套接字地址使用新客户端(Socket client = server.accept();)

来自

client.getLocalAddress()。toString()// ip服务器client.getRemoteSocketAddress()。toString()// ip客户端

并存储在HashMap中,仇敌示例。

© www.soinside.com 2019 - 2024. All rights reserved.