如何查找Wi-Fi P2P客户端设备的地址?

4

Android WifiP2p API可以在WifiP2pInfo.groupOwnerAddress中广播group owner的地址。客户端可以使用此地址向群主发送数据。那么群主如何向客户端发送数据?在哪里分配或查找客户端设备的地址?


请查看此链接:https://dev59.com/aHHYa4cB1Zd3GeqPO7p5 - Saeid Farivar
这几乎是和我的问题一样的。但是客户端如何找到自己的IP地址或GO分配给客户端一个IP地址呢?我在WifiP2p API中找不到任何方法来做到这一点。 - windchime
有不同的方法可以获取它。连接到一个组后,您的设备将被分配一个IP地址。然后您可以像获取WiFi IP地址一样获取您的IP地址。在连接到该组之前,您可能没有IP地址。此外,您还可以选择更困难的方式,在加入组后让GO发送您的IP地址给您。 - Saeid Farivar
我应该调用哪些方法来实现你建议的方式? - windchime
1个回答

4

当客户端向组所有者发送数据并且组所有者通过ServerSocket读取时,serverSocket.accept()将提供已接受连接的客户端的套接字。从该套接字中,可以通过s.getInetAddress()获取客户端的IP地址。

ServerSocket serverSocket = new ServerSocket(8988);
Socket s = serverSocket.accept();  
InputStream is = s.getInputStream();  
Log.d("Client's InetAddress",""+s.getInetAddress());
ObjectInputStream ois = new ObjectInputStream(is);  
TestObject to = (TestObject)ois.readObject();  
is.close();  
s.close();  
serverSocket.close();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接