как сделать автоматическое соединение между двумя устройствами на одном wifi?

Я разрабатываю приложение для Android phonegap, которое должно подключаться к серверу в той же сети Wi-Fi.
приложение работает нормально, если я предоставляю ip сервера , но в случае выключения маршрутизатора, ip меняется !. Я использую сервер XAMPP на моем ноутбуке. и приложение будет установлено примерно на 20 устройствах. Это означает, что ручной подход болезнен !!

  • Итак, есть ли в любом случае, чтобы повторно подключиться автоматически, не зная новый ip?
  • и как это сделать?

3 ответа

  1. Нет извините, эта проблема не связана с phonegap, просто frontend службы (как phonegap), всегда нужен IP или DNS для подключения к серверу. Проверьте о статическом IP для настройки на сервере, поэтому он будет иметь тот же локальный IP, даже если reouter перезагружается. если у вас будет открытый сервер, вы должны проверить о поставщиках DNS.

    Удачи!

  2. Клиент смотрит на свой собственный ip и поэтому знает, как выглядит ip сервера. Затем он просто пробует ip-адреса вокруг своего собственного ip. Установите время ожидания в одну секунду. Whithin немного секунд выбран правый ip.

  3. Мой ответ основан на том, что предложил @Greenapps .
    Я просто зациклился на возможном ip-адресе и Eureka !!!

    КЛИЕНТ

    <html>
    <head>
    <script>
    var i = 0;
    window.setTimeout(testip,1000);
    while(i<=255){
           testip(i++);
    }
    function testip(j){
     var xmlhttp = new XMLHttpRequest();
            xmlhttp.onreadystatechange = function() {
                if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                    if(xmlhttp.responseText.indexOf("192.168.1")>-1)
                    window.location.href ="http://"+xmlhttp.responseText+":8080/rest/server/categorie.php";
                }
            };
            xmlhttp.open("GET", "http://192.168.1."+j+":8080/rest/server/getip.php", true);
            xmlhttp.send();
    
    }
    
    </script>
    </head>
    </html>  
    

    Сервер (getip.РНР)

    <?php
        header('Access-Control-Allow-Origin: *'); 
         echo getHostByName(getHostName());
    ?>