首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Android中需要获取客户端服务器的IP地址,有更好的方法吗?

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

Stack Overflow用户
提问于 2013-01-31 08:31:10
回答 3查看 1.5K关注 0票数 1

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

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

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

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

一种想法是让服务器平板电脑连接到用php编写的网站,并让网站获取IP地址并将其存储在数据库中。接下来,我将让客户端平板电脑从该网站获取IP地址。则具有服务器IP的客户端平板将能够建立连接。所有这一切将避免用户必须知道IP并在每次他们想要连接时键入它。

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-01-31 09:08:16

我有一款安卓应用。我所做的就是使用多播网络。请参阅示例here

由于多播网络使用组IP,因此我的建议如下

  • 服务器平板电脑将充当接收方
  • 客户端将成为发送方(它们将把本地IP发送给接收方)
票数 0
EN

Stack Overflow用户

发布于 2013-01-31 08:47:17

如果服务器Android不能分配固定的公共IP地址,这意味着它可以使用DHCP获取LAN IP,它可以向DHCP服务器请求特定的IP地址(可能您需要对路由器进行一些配置),这里的路由器。

另一种方法是使用反向地址解析协议(RARP),您可以使用该协议向交换机询问具有特定MAC地址的主机的IP地址。您的服务器Android手机的MAC地址是固定的。

这些只是理论上可行的。你需要研究一下在Android手机中调用的API。

票数 0
EN

Stack Overflow用户

发布于 2020-05-09 20:06:07

连接之后,您可以使用新客户端检索套接字地址

( Socket client = server.accept();)

从…

代码语言:javascript
复制
        client.getLocalAddress().toString()                //ip server
        client.getRemoteSocketAddress().toString()         //ip client

并将它们存储在HashMap列表中,例如:

代码语言:javascript
复制
        String name=client.toString();
        name=name.substring(name.indexOf("/")+1,name.indexOf(","));
        List<String> index = new ArrayList<String>(list.keySet());
        if(index.indexOf(name)<0)
        list.put(name,client.getRemoteSocketAddress().toString());
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14616483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档