как найти адрес клиентского устройства wifip2p?

Android WifiP2p API транслирует адрес владельца группы в WifiP2pInfo.groupOwnerAddress. Клиент может отправлять данные владельцу группы, используя этот адрес. Как владелец группы может отправлять данные клиентам? Где назначить или узнать адрес клиентского устройства?


person windchime    schedule 25.09.2013    source источник
comment
взгляните на это   -  person Saeid Farivar    schedule 25.09.2013
comment
Это почти тот же вопрос, что и мой. Но как клиент может узнать свой собственный IP-адрес или GO назначает IP-адрес клиенту. Я не могу найти средства в API WifiP2p для этого.   -  person windchime    schedule 27.09.2013
comment
Есть разные способы получить это. после того, как вы подключитесь к группе, вашему устройству будет присвоен ip. тогда вы можете получить свой IP-адрес так же, как вы получаете IP-адрес Wi-Fi. у вас может не быть ip до этого подключения к группе. также вы можете пойти более сложным путем и позволить GO вернуть вам ваш IP-адрес после того, как вы присоединились к группе.   -  person Saeid Farivar    schedule 27.09.2013
comment
какие методы я должен вызвать, чтобы выполнить предложенные вами способы?   -  person windchime    schedule 29.09.2013


Ответы (1)


Когда клиент отправляет данные владельцу группы, а владелец группы считывает их через ServerSocket.serverSocket.accept() дает сокет клиента, чье соединение GroupOwner принял. Из этого сокета он получает IP-адрес клиента через s.getInetAddress().

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();
person pioneerBhawna    schedule 02.04.2014