2010-03-14 2 views
1

Bonjour는 특정 유형의 서비스를 탐색하는 "DNSSD.browse (serviceType, callBackObject)"메소드를 제공합니다. 지정된 유형의 서비스가있는 경우 Bonjour는 "callBackObject.serviceFound"를 호출합니다. 서비스가 손실되면 Bonjour는 "callBackObject.serviceLost"를 호출합니다.Bonjour에서 특정 이름의 서비스를 검색 할 수 있습니까?

저는 항상 특정 서비스를 모니터링하는 방법으로 "DNSSD.browse"를 고려했습니다. Bonjour는 특정 서비스를 모니터링하고 서비스가 발견되거나 (사용 가능) 또는 유실 된 경우 (사용할 수없는 경우) 필요한 메소드를 호출합니다.

하지만 "DNSSD.browse는"("HTTP .tcp"예를 들어) (인수로) 서비스의 유형을 받아 이러한 유형의 여러 서비스가 될 수 있음을 깨달았다보다. 따라서, 지정된 유형의 서비스가 발견되거나 손실되면 "serviceFound"및 "serviceLost"를 호출합니다.

그러나 내 응용 프로그램에서는 특정 서비스를 찾아보고 싶습니다. 가장 좋은 방법은 무엇입니까? 나는 두 가지 해결책을 가지고 있습니다 :

  1. 서비스를 등록 할 때 고유 한 유형을 지정합니다. 예 : "server1. http .tcp"

  2. 서비스는 고유 한 이름 (유형 아님)으로 서비스를 등록하고 Bonjour에 특정 이름의 서비스를 검색하도록 요청합니다. 그러나 Bonjour가 그러한 가능성을 제공하는지 확신하지 못합니다. 특정 이름의 서비스를 검색 할 수 있습니까?

답변

1

귀하의 첫 번째 옵션이 가장 적합합니다. 서비스 이름에 서비스 인스턴스 이름이 추가 될 수 있으므로 서비스에 이름 (사용자가 제안하는 이름은 밑줄이 적절 함) ( "server1._http._tcp")을 포함 할 수 있습니다. 해당 서비스 이름을 사용하면 더 구체적인 쿼리를 원할 경우 이 "_http._tcp"를 검색 할 때 나타나고 "server1._http._tcp"가 일 때 표시됩니다. DNSSD.browse에는이 유형의 서비스 이름에 대해 전체 지원이 있어야합니다.

관련 문제