Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Red inalámbrica Wi-Fi de Android

Estoy desarrollando una aplicación en Android donde estoy buscando todos los compañeros de la gama y luego me conecto con todos ellos, El dispositivo que inició el descubrimiento se convierte en el propietario del grupo y todos los demás se convierten en cliente, he hecho todo lo que la conexión Pero ahora quiero que el propietario del grupo para enviar el mensaje a todos los compañeros de conexión, ¿Cómo lograr esto y también por favor dime cuál es la metodología en la comunicación peer-to-peer, p2p en Android también utilizar IP para enviar y recibir ¿datos?

Gracias Recuerdos Talib.

  • ¿Cómo obtengo un descubrimiento de servicio Wi-Fi punto a punto para trabajar?
  • ¿Existe un equivalente de Wi-Fi Direct / Wi-Fi P2P para Phonegap / Cordova?
  • Cómo obtener la dirección IP directa de WiFi de mi dispositivo
  • Cómo imprimir un archivo de texto con WiFi Direct
  • Android NSD no descubre todos los servicios
  • Transmisión por Wi-Fi Direct
  • ¿Puedo conectar Windows PC a un teléfono Android con WiFi Direct
  • Cómo aceptar automáticamente solicitudes de conexión Wi-Fi directamente en Android
  • One Solution collect form web for “Red inalámbrica Wi-Fi de Android”

    Wi-Fi Direct / P2P puede considerarse Wi-Fi normal, pero donde el propietario del grupo (GO) actúa como un punto de acceso de software (servidor dhcp, aprovisionamiento, etc.). Así que para responder a su última pregunta, sí Wi-Fi Direct también utiliza IP para enviar y recibir datos.

    ¿Quieres enviar datos a todos los miembros del grupo? Hay dos soluciones para esto:

    1. Transmita el mensaje una vez usando multicast.
    2. Envíe el mensaje a cada cliente individual del grupo.

    El método más eficiente sería la solución 1, para difundir los datos mediante la multidifusión, ya que sólo tendría que enviar los datos una vez. Desafortunadamente, el soporte de multidifusión Wi-Fi está muy fragmentado en Android, ya que muchos dispositivos parecen bloquear el tráfico no unicast. Consulte este artículo para obtener más información en profundidad si desea ir por esta ruta.

    La solución 2 es el mejor método si desea garantizar el soporte en todos los dispositivos y transmitir sólo una pequeña cantidad de datos. El GO necesita las direcciones IP de los clientes del grupo, pero debido a la forma en que Wi-Fi Direct está implementado en Android, sólo el GO IP es conocido por todos los dispositivos. Una solución es dejar que los clientes se conecten a un socket en el GO, para obtener su dirección IP:

    Codigo del cliente

    private static final int SERVER_PORT = 1030; ... // on group join: wifiP2pManager.requestConnectionInfo(channel, new ConnectionInfoListener() { @Override public void onConnectionInfoAvailable(WifiP2pInfo p2pInfo) { if (!p2pInfo.isGroupOwner) { // Joined group as client - connect to GO Socket socket = new Socket(); socket.connect(new InetSocketAddress(p2pInfo.groupOwnerAddress, SERVER_PORT)); } } }); 

    Código del propietario del grupo:

     private static final int SERVER_PORT = 1030; private ArrayList<InetAddress> clients = new ArrayList<InetAddress>(); public void startServer() { clients.clear(); ServerSocket serverSocket = new ServerSocket(SERVER_PORT); // Collect client ip's while(true) { Socket clientSocket = serverSocket.accept(); clients.add(clientSocket.getInetAddress()); clientSocket.close(); } } 

    Ahora todo lo que necesita hacer es iniciar un serversocket en cada cliente, y hacer que iterate a través de la lista de clientes creando una conexión de socket a cada uno y enviando el mensaje que desea transmitir.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.