我使用插座通过同一路由器将两台安卓平板电脑连接成一个wifi网络。一个是服务器,另一个是客户端。
问题是,每次我想要连接客户端和服务器平板电脑时,我都必须在客户端平板电脑中键入服务器平板电脑的IP地址。有没有办法避免这种情况?
在联网之前,我还没有想出如何将服务器IP地址发送到客户端平板电脑。
我希望有一种方法可以将这两个平板电脑联网,而不必知道服务器平板电脑的IP地址。
一种想法是让服务器平板电脑连接到用php编写的网站,并让网站获取IP地址并将其存储在数据库中。接下来,我将让客户端平板电脑从该网站获取IP地址。则具有服务器IP的客户端平板将能够建立连接。所有这一切将避免用户必须知道IP并在每次他们想要连接时键入它。
我相信其他人以前也做过类似的事情并解决了这个问题。有什么想法吗?
发布于 2013-01-31 09:08:16
我有一款安卓应用。我所做的就是使用多播网络。请参阅示例here
由于多播网络使用组IP,因此我的建议如下
发布于 2013-01-31 08:47:17
如果服务器Android不能分配固定的公共IP地址,这意味着它可以使用DHCP获取LAN IP,它可以向DHCP服务器请求特定的IP地址(可能您需要对路由器进行一些配置),这里的路由器。
另一种方法是使用反向地址解析协议(RARP),您可以使用该协议向交换机询问具有特定MAC地址的主机的IP地址。您的服务器Android手机的MAC地址是固定的。
这些只是理论上可行的。你需要研究一下在Android手机中调用的API。
发布于 2020-05-09 20:06:07
连接之后,您可以使用新客户端检索套接字地址
( Socket client = server.accept();)
从…
client.getLocalAddress().toString() //ip server
client.getRemoteSocketAddress().toString() //ip client并将它们存储在HashMap列表中,例如:
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());https://stackoverflow.com/questions/14616483
复制相似问题