Dns.EndResolve(IAsyncResult) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
注意
EndResolve is obsoleted for this type, please use EndGetHostEntry instead. https://go.microsoft.com/fwlink/?linkid=14202
注意
EndResolve has been deprecated. Use EndGetHostEntry instead.
注意
EndResolve is obsoleted for this type, please use EndGetHostEntry instead. http://go.microsoft.com/fwlink/?linkid=14202
结束对 DNS 信息的异步请求。
public:
static System::Net::IPHostEntry ^ EndResolve(IAsyncResult ^ asyncResult);
[System.Obsolete("EndResolve is obsoleted for this type, please use EndGetHostEntry instead. https://go.microsoft.com/fwlink/?linkid=14202")]
public static System.Net.IPHostEntry EndResolve (IAsyncResult asyncResult);
[System.Obsolete("EndResolve has been deprecated. Use EndGetHostEntry instead.")]
public static System.Net.IPHostEntry EndResolve (IAsyncResult asyncResult);
[System.Obsolete("EndResolve is obsoleted for this type, please use EndGetHostEntry instead. http://go.microsoft.com/fwlink/?linkid=14202")]
public static System.Net.IPHostEntry EndResolve (IAsyncResult asyncResult);
public static System.Net.IPHostEntry EndResolve (IAsyncResult asyncResult);
[<System.Obsolete("EndResolve is obsoleted for this type, please use EndGetHostEntry instead. https://go.microsoft.com/fwlink/?linkid=14202")>]
static member EndResolve : IAsyncResult -> System.Net.IPHostEntry
[<System.Obsolete("EndResolve has been deprecated. Use EndGetHostEntry instead.")>]
static member EndResolve : IAsyncResult -> System.Net.IPHostEntry
[<System.Obsolete("EndResolve is obsoleted for this type, please use EndGetHostEntry instead. http://go.microsoft.com/fwlink/?linkid=14202")>]
static member EndResolve : IAsyncResult -> System.Net.IPHostEntry
static member EndResolve : IAsyncResult -> System.Net.IPHostEntry
Public Shared Function EndResolve (asyncResult As IAsyncResult) As IPHostEntry
参数
- asyncResult
- IAsyncResult
一个 IAsyncResult 实例,该实例通过调用 BeginResolve(String, AsyncCallback, Object) 方法返回。
返回
一个 IPHostEntry 对象,该对象包含一个主机的 DNS 信息。
- 属性
例外
asyncResult
为 null
。
示例
以下示例结束对 DNS 主机信息的异步请求。
public ref class DnsBeginGetHostByName
{
public:
static System::Threading::ManualResetEvent^ allDone = nullptr;
ref class RequestState
{
public:
IPHostEntry^ host;
RequestState()
{
host = nullptr;
}
};
static void RespCallback( IAsyncResult^ ar )
{
try
{
// Convert the IAsyncResult* Object* to a RequestState Object*.
RequestState^ tempRequestState = dynamic_cast<RequestState^>(ar->AsyncState);
// End the asynchronous request.
tempRequestState->host = Dns::EndResolve( ar );
allDone->Set();
}
catch ( ArgumentNullException^ e )
{
Console::WriteLine( "ArgumentNullException caught!!!" );
Console::WriteLine( "Source : {0}", e->Source );
Console::WriteLine( "Message : {0}", e->Message );
}
catch ( Exception^ e )
{
Console::WriteLine( "Exception caught!!!" );
Console::WriteLine( "Source : {0}", e->Source );
Console::WriteLine( "Message : {0}", e->Message );
}
}
};
int main()
{
DnsBeginGetHostByName::allDone = gcnew ManualResetEvent( false );
// Create an instance of the RequestState class.
DnsBeginGetHostByName::RequestState^ myRequestState =
gcnew DnsBeginGetHostByName::RequestState;
// Begin an asynchronous request for information like host name, IP addresses, or
// aliases for specified the specified URI.
IAsyncResult^ asyncResult = Dns::BeginResolve( "www.contoso.com",
gcnew AsyncCallback( DnsBeginGetHostByName::RespCallback ), myRequestState );
// Wait until asynchronous call completes.
DnsBeginGetHostByName::allDone->WaitOne();
Console::WriteLine( "Host name : {0}", myRequestState->host->HostName );
Console::WriteLine( "\nIP address list : " );
for ( int index = 0; index < myRequestState->host->AddressList->Length; index++ )
Console::WriteLine( myRequestState->host->AddressList[ index ] );
Console::WriteLine( "\nAliases : " );
for ( int index = 0; index < myRequestState->host->Aliases->Length; index++ )
Console::WriteLine( myRequestState->host->Aliases[ index ] );
}
class DnsBeginGetHostByName
{
public static System.Threading.ManualResetEvent allDone = null;
class RequestState
{
public IPHostEntry host;
public RequestState()
{
host = null;
}
}
public static void Main()
{
allDone = new ManualResetEvent(false);
// Create an instance of the RequestState class.
RequestState myRequestState = new RequestState();
// Begin an asynchronous request for information like host name, IP addresses, or
// aliases for specified the specified URI.
IAsyncResult asyncResult = Dns.BeginResolve("www.contoso.com", new AsyncCallback(RespCallback), myRequestState );
// Wait until asynchronous call completes.
allDone.WaitOne();
Console.WriteLine("Host name : " + myRequestState.host.HostName);
Console.WriteLine("\nIP address list : ");
for(int index=0; index < myRequestState.host.AddressList.Length; index++)
{
Console.WriteLine(myRequestState.host.AddressList[index]);
}
Console.WriteLine("\nAliases : ");
for(int index=0; index < myRequestState.host.Aliases.Length; index++)
{
Console.WriteLine(myRequestState.host.Aliases[index]);
}
}
private static void RespCallback(IAsyncResult ar)
{
try
{
// Convert the IAsyncResult object to a RequestState object.
RequestState tempRequestState = (RequestState)ar.AsyncState;
// End the asynchronous request.
tempRequestState.host = Dns.EndResolve(ar);
allDone.Set();
}
catch(ArgumentNullException e)
{
Console.WriteLine("ArgumentNullException caught!!!");
Console.WriteLine("Source : " + e.Source);
Console.WriteLine("Message : " + e.Message);
}
catch(Exception e)
{
Console.WriteLine("Exception caught!!!");
Console.WriteLine("Source : " + e.Source);
Console.WriteLine("Message : " + e.Message);
}
}
}
Class DnsBeginGetHostByName
Class RequestState
Public host As IPHostEntry
Public Sub New()
host = Nothing
End Sub
End Class
Public Shared Sub Main()
Try
' Create an instance of the RequestState class.
Dim myRequestState As New RequestState()
' Begin an asynchronous request for information such as the host name, IP addresses,
' or aliases for the specified URI.
Dim asyncResult As IAsyncResult = CType(Dns.BeginResolve("www.contoso.com", AddressOf RespCallback, myRequestState),IAsyncResult)
' Wait until asynchronous call completes.
While asyncResult.IsCompleted <> True
End While
Console.WriteLine(("Host name : " + myRequestState.host.HostName))
Console.WriteLine(ControlChars.Cr + "IP address list : ")
Dim index As Integer
For index = 0 To myRequestState.host.AddressList.Length - 1
Console.WriteLine(myRequestState.host.AddressList(index))
Next index
Console.WriteLine(ControlChars.Cr + "Aliases : ")
For index = 0 To myRequestState.host.Aliases.Length - 1
Console.WriteLine(myRequestState.host.Aliases(index))
Next index
catch e as Exception
Console.WriteLine("Exception caught!!!")
Console.WriteLine(("Source : " + e.Source))
Console.WriteLine(("Message : " + e.Message))
End Try
End Sub
Private Shared Sub RespCallback(ar As IAsyncResult)
Try
' Convert the IAsyncResult object to a RequestState object.
Dim tempRequestState As RequestState = CType(ar.AsyncState, RequestState)
' End the asynchronous request.
tempRequestState.host = Dns.EndResolve(ar)
Catch e As ArgumentNullException
Console.WriteLine("ArgumentNullException caught!!!")
Console.WriteLine(("Source : " + e.Source))
Console.WriteLine(("Message : " + e.Message))
Catch e As Exception
Console.WriteLine("Exception caught!!!")
Console.WriteLine(("Source : " + e.Source))
Console.WriteLine(("Message : " + e.Message))
End Try
End Sub
注解
此方法将一直阻止,直到操作完成。
Ipv6Element.Enabled如果 设置为 true
,则Aliases此方法不会填充返回的IPHostEntry实例的 属性,并且将始终为空。
若要同步执行此操作,请使用 Resolve 方法。
注意
在应用程序中启用网络跟踪时,此成员会发出跟踪信息。 有关详细信息,请参阅 .NET Framework 中的网络跟踪。