iOS で Xamarin + MonoTouch を使用して、ネットワーク上の Web サーバーを参照し、そこからファイルをダウンロードしています。
resolve イベント ハンドラに渡される NSNetService には、アドレスが NSData として含まれています。その NSData を実際の IP アドレスに変換してから URL を作成する良い方法が見つかりません。つまり、http:// < IPAddress > /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 アドレスを取得する正しい方法は何ですか?