Android WifiP2p API транслирует адрес владельца группы в WifiP2pInfo.groupOwnerAddress. Клиент может отправлять данные владельцу группы, используя этот адрес. Как владелец группы может отправлять данные клиентам? Где назначить или узнать адрес клиентского устройства?
как найти адрес клиентского устройства wifip2p?
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