как увидеть свойства службы JmDNS на стороне получателя?

Один из способов создания служб JmDNS:

 ServiceInfo.create(type, name, port, weight, priority, props);

где props — карта, описывающая некоторые свойства сервиса. Есть ли у кого-нибудь пример, иллюстрирующий использование этих свойств, например, как их использовать в части получателя. Я пытался :

Hashtable<String,String> settings = new Hashtable<String,String>();
settings.put("host", "hhgh");
settings.put("web_port", "hdhr");
settings.put("secure_web_port", "dfhdyhdh");
ServiceInfo info = ServiceInfo.create("_workstation._tcp.local.", "service6", 80, 0, 0, true, settings);

но тогда на машине, получающей эту услугу, что я могу сделать, чтобы увидеть эти свойства?

Буду признателен за любую помощь...


person helene    schedule 16.09.2011    source источник


Ответы (1)


Прошло некоторое время с тех пор, как это было задано, но у меня был тот же вопрос. Одна проблема с исходным вопросом заключается в том, что хост и порты не должны помещаться в текстовое поле, и в этом случае на самом деле должно быть два типа службы: один безопасный и один небезопасный (или, возможно, использовать подтипы).

Вот неполный пример, который получает список запущенных служб рабочей станции:

ServiceInfo[] serviceInfoList = jmdns.list("_workstation._tcp.local.");
if(serviceInfoList != null) {
  for (int index = 0; index < serviceInfoList.length; index++) {
    int port = serviceInfoList[index].getPort();
    int priority = serviceInfoList[index].getPriority();
    int weight = serviceInfoList[index].getWeight();
    InetAddress address = serviceInfoList[index].getInetAddresses()[0];
    String someProperty = serviceInfoList[index].getPropertyString("someproperty");

    // Build a UI or use some logic to decide if this service provider is the
    // one you want to use based on prority, properties, etc.
    ...
  }
}

Из-за того, как реализован JmDNS, первый вызов list() для данного типа выполняется медленно (несколько секунд), но последующие вызовы будут довольно быстрыми. Поставщики услуг могут изменить свойства, вызвав info.setText(settings), и изменения будут автоматически переданы слушателям.

person JT.    schedule 25.07.2012