2013-09-25 35 views
3

Android WifiP2p API在WifiP2pInfo.groupOwnerAddress中廣播組所有者地址。客戶可以使用此地址向組所有者發送數據。團隊所有者如何將數據發回給客戶?在哪裏分配或找出客戶端設備的地址?如何找到wifip2p客戶端設備的地址?

+0

看看[這](http://stackoverflow.com/questions/16372724/wifi-direct-android) –

+0

這幾乎像我同樣的問題。但是,客戶端如何找到自己的IP地址或GO爲客戶端分配IP地址。我無法在WifiP2p API中找到任何方法來做到這一點。 – windchime

+0

你可以通過不同的方式來獲得。連接到組後,您的設備將被分配一個IP。那麼你可以得到你的IP相同的方式,因爲你得到的無線上網IP地址。在連接到組之前,您可能沒有IP。您也可以採取更加艱難的方式,並讓GO在您加入該組後將您的IP地址發回給您。 –

回答

4

當客戶端發送數據給組所有者和組所有者通過ServerSocket讀取它。 serverSocket.accept()給出連接GroupOwner已接受的客戶端的套接字。從該套接字,它通過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(); 
相關問題