현재 iPad 응용 프로그램을 개발 중입니다. WCF를 사용하여 Windows C# 응용 프로그램과 통신하고 BonJour를 통해 검색해야합니다.MonoTouch.Foundation.NSNetService로 주소를 확인하는 방법은 무엇입니까?
Mono.ZeroConf 라이브러리를 사용하여 windows/C# 부분을 이미 만들고 Windows에서 작동하는 것으로 테스트했습니다.
이제 MonoTouch 응용 프로그램에서 Windows 응용 프로그램을 검색하려고하면 주소를 확인해야합니다. 나는 무엇이 잘못되었는지 간단히 알 수 없다.
iPad 앱에 다음 코드가 있습니다.
NSNetServiceBrowser browser = new NSNetServiceBrowser();
browser.FoundService += delegate(object sender, NSNetServiceEventArgs e){
e.Service.AddressResolved += delegate(object service, EventArgs e1){
//No matter how I treat the Bytes here it resolves to me as 8.135.207.208
//When it was supposed to resolve to some 172.x.x.x ip.
long address = ((NSNetService)service).Addresses[0].Bytes.ToInt64();
};
e.Service.Resolve();
};
browser.SearchForServices("_myService._tcp", "local");
내 질문은 올바른 주소록 배열의 NSData 개체를 어떻게 처리해야 할 것인가입니다.
검색을 시도했지만 알아낼 수 없습니다.
해결 된 서비스의 모든 다른 속성 등 이름, 포트,
나는 당신의 일부가 여기에 있었다 바라며, 나에게 답변을 제공 할 수처럼 정확합니다.
안부 /앤더스
모두 똑바로하십시오. nsnetservice의 주소를 WCF 서비스에 대한 인수로 사용하고 싶습니다. 이를 위해 IP를 사용하고 싶지만 물론 NSNetService 객체의 DNS 이름으로 시도 할 수 있습니다. 나는 그것이 당신이 제안하는 것이라고 생각합니다. 또는 "주소가 이미 초기화되었으므로 서비스를 사용하고 주소 자체는 신경 쓰지 않습니다." – ankhansen
AddressResolved 대리자가 호출되면 실제 NSService를 사용할 수 있습니다. HostName 및 Port 속성을 사용하여 NSUrlConnection 및 NSUrlRequest에 대한 NSUrl을 만듭니다. –
좋아, 나는 그것이 일할 것으로 기대한다. 내 서비스가 응용 프로그램에서 호스팅되는 대신 웹 사이트로 이동 한 이후 실제로 다른 접근 방식을 취하고 Bonjour 검색을 중단했습니다. 그러나 어쨌든 당신의 도움에 감사드립니다. – ankhansen