El siguiente ejemplo esta hecho para Android, pero la idea es la misma para todas las plataformas, obtener la dirección IP donde se esta ejecutando nuestra aplicación y la mascara de red, con esos datos se aplica un AND y vamos obteniendo byte a byte la dirección IP.
1: DhcpInfo dhcp = wifi.getDhcpInfo();
2: int broadcast = (dhcp.ipAddress & dhcp.netmask) | ~dhcp.netmask;
3: byte[] ip = new byte[4];
4: for (int i = 0; i < 4; i++)
5: ip[i] = (byte) ((broadcast >> i * 8) & 0xFF);
Otra metida de pata basten comun es usar el mismo puerto en el cliente y en el servidor, por lo que al hacer el broadcast detectamos que nos llegan datos al puerto donde estamos esperando la respuesta cuando en realidad es el mensaje que acabamos de difundir por la red.
No hay comentarios:
Publicar un comentario