iOS에서 Xamarin + MonoTouch를 사용하여 네트워크에서 파일을 다운로드 할 수있는 웹 서버를 검색합니다.MonoTouch에서 Bonjour NSNetService를 사용하여 NSData의 IP 주소를 입력 하시겠습니까?
해결 이벤트 핸들러로 전달되는 NSNetService에는 NSData와 같은 주소가 들어 있습니다. NSData를 실제로 IP 주소로 바꿀 수있는 좋은 방법을 찾지 못했습니다. 예를 들어 http : // < IP 주소> /folder/file.htm
이것은 NSNetService.AddressResolved입니다. 이벤트 처리기 :
private void OnServiceResolved(object sender, EventArgs args)
{
NSNetService service = (NSNetService)sender;
// service.Port is valid.
// service.HostName is valid.
// but we want the IP addres, which is in service.Addresses.
// None of the following four methods works quite right.
IPAddress address = (IPAddress)service.Addresses [0]; // Cannot convert type NSData to IPAddress
SocketAddress address2 = (SocketAddress)service.Addresses[0]; // Cannot convert NSData to SocketAddress. A binary copy might work?
IPHostEntry entry = (IPHostEntry)service.Addresses [0]; // Cannot convert NSData to IPHostEntry
IPHostEntry entry2 = Dns.GetHostByName (service.HostName); // This kinda works, but is dumb. Didn't we just resolve?
}
해결 이벤트의 NSNetService에서 서비스의 IP 주소를 가져 오는 올바른 방법은 무엇입니까?
감사합니다 :
UPDATE
더 완벽한 버전, 즉 같을 것이다,
IPAddress
반환합니다. Xamarin에서 쉽게 변환 할 수 있다면 좋을 것입니다. :) –