. Моя программа Android должна сканировать 255 адресов LAN, чтобы найти, доступна ли служба OData (служба данных WCF).Каков самый быстрый способ определить, доступна ли услуга на определенном IP-адресе
Служба работает на 1 или 2 компьютерах, в локальной сети имеется около 20 устройств, но когда мой код «сканирует» IP-адрес, который используется, но не размещает службу, он не бросает исключение немедленно, а не ждет в течение долгого времени, так что поиск 2 адресов занял 10 минут.
Вот код:
try
{
String url = String.format("http://%s/InformationService/InformationService.svc/", ip);
ODataConsumer consumer = ODataJerseyConsumer.create(url);
Enumerable<OObject> result= consumer.callFunction("CheckInformation")
.execute();
Log.i("DEBUG", "Service available: " + ip);
}
catch (Throwable e)
{
//e.printStackTrace();
Log.i("DEBUG", "No service: " + ip);
}
Почему ждать на зарезервированных IP-адресов, если служба не принимала там?
Как я могу обнаружить сразу, если там нет службы?
http://stackoverflow.com/questions/565062/check-the-availability-of-the-wcf-web-service?rq=1 – user1940676
@ user1940676: это не имеет отношения к проблеме. Мой «доступный» означает, что служба запущена, а основной проблемой является тайм-аут. – Nestor
Вы пытались ограничить таймаут запроса? – user1940676