Dns.BeginGetHostEntry 方法    
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将主机名或 IP 地址异步解析为 IPHostEntry 实例。
重载
| BeginGetHostEntry(IPAddress, AsyncCallback, Object) | 将 IP 地址异步解析为 IPHostEntry 实例。 | 
| BeginGetHostEntry(String, AsyncCallback, Object) | 将主机名或 IP 地址异步解析为 IPHostEntry 实例。 | 
BeginGetHostEntry(IPAddress, AsyncCallback, Object)
- Source:
- Dns.cs
- Source:
- Dns.cs
- Source:
- Dns.cs
- Source:
- Dns.cs
将 IP 地址异步解析为 IPHostEntry 实例。
public:
 static IAsyncResult ^ BeginGetHostEntry(System::Net::IPAddress ^ address, AsyncCallback ^ requestCallback, System::Object ^ stateObject);public static IAsyncResult BeginGetHostEntry(System.Net.IPAddress address, AsyncCallback? requestCallback, object? stateObject);public static IAsyncResult BeginGetHostEntry(System.Net.IPAddress address, AsyncCallback requestCallback, object stateObject);static member BeginGetHostEntry : System.Net.IPAddress * AsyncCallback * obj -> IAsyncResultPublic Shared Function BeginGetHostEntry (address As IPAddress, requestCallback As AsyncCallback, stateObject As Object) As IAsyncResult参数
- address
- IPAddress
要解析的 IP 地址。
- requestCallback
- AsyncCallback
一个 AsyncCallback 委托,它引用操作完成时要调用的方法。
- stateObject
- Object
一个用户定义对象,其中包含操作的相关信息。 当操作完成时,此对象会被传递给 requestCallback 委托。
返回
引用异步请求的 IAsyncResult 实例。
例外
              address 为 null。
解析 address 时遇到错误。
              address 是无效的 IP 地址。
示例
下面的代码示例使用 BeginGetHostEntry 方法将 IP 地址解析为 IPHostEntry 实例。
// Signals when the resolve has finished.
public static ManualResetEvent GetHostEntryFinished =
    new ManualResetEvent(false);
// Define the state object for the callback.
// Use hostName to correlate calls with the proper result.
public class ResolveState
{
    string hostName;
    IPHostEntry resolvedIPs;
    public ResolveState(string host)
    {
        hostName = host;
    }
    public IPHostEntry IPs
    {
        get { return resolvedIPs; }
        set { resolvedIPs = value; }
    }
    public string host
    {
        get { return hostName; }
        set { hostName = value; }
    }
}
// Record the IPs in the state object for later use.
public static void GetHostEntryCallback(IAsyncResult ar)
{
    ResolveState ioContext = (ResolveState)ar.AsyncState;
    ioContext.IPs = Dns.EndGetHostEntry(ar);
    GetHostEntryFinished.Set();
}
// Determine the Internet Protocol (IP) addresses for
// this host asynchronously.
public static void DoGetHostEntryAsync(string hostname)
{
    GetHostEntryFinished.Reset();
    ResolveState ioContext= new ResolveState(hostname);
    Dns.BeginGetHostEntry(ioContext.host,
        new AsyncCallback(GetHostEntryCallback), ioContext);
    // Wait here until the resolve completes (the callback
    // calls .Set())
    GetHostEntryFinished.WaitOne();
    Console.WriteLine("EndGetHostEntry({0}) returns:", ioContext.host);
    foreach (IPAddress address in ioContext.IPs.AddressList)
    {
        Console.WriteLine($"    {address}");
    }
}
' Signals when the resolve has finished.
Dim Shared GetHostEntryFinished As ManualResetEvent = New ManualResetEvent(False)
' Define the state object for the callback. 
' Use hostName to correlate calls with the proper result.
Class ResolveState
    
    Dim hostName As String
    Dim resolvedIPs As IPHostEntry
    Public Sub New(host As String)
        hostName = host
    End Sub
    Public Property IPs AS IPHostEntry
        Get
            Return resolvedIPs
        End Get
        Set
            resolvedIPs = value
        End Set
    End Property
    Public Property host As String
        Get
            Return hostName
        End Get
        Set
            hostName = value
        End Set
    End Property
End Class
' Record the IPs in the state object for later use.
Shared Sub GetHostEntryCallback(ar As IAsyncResult)
    Dim ioContext As ResolveState = ar.AsyncState
    ioContext.IPs = Dns.EndGetHostEntry(ar)
    GetHostEntryFinished.Set()
End Sub
' Determine the Internet Protocol (IP) addresses for 
' this host asynchronously.
Shared Sub DoGetHostEntryAsync(hostname As String)
    
    GetHostEntryFinished.Reset()
    Dim ioContext As ResolveState = New ResolveState(hostname)
    Dns.BeginGetHostEntry(ioContext.host,AddressOf GetHostEntryCallback, ioContext)
    ' Wait here until the resolve completes (the callback 
    ' calls .Set())
    GetHostEntryFinished.WaitOne()
    Console.WriteLine($"EndGetHostEntry({ioContext.host}) returns:")
    Dim addresses As IPAddress() = ioContext.IPs.AddressList
    Dim index As Integer
    For index = 0 To addresses.Length - 1
        Console.WriteLine($"    {addresses(index)}")
    Next index
End Sub
注解
方法 BeginGetHostEntry 异步查询 DNS 服务器,以获取与 IP 地址关联的 IP 地址和别名。
注意 在应用程序中启用网络跟踪时,此成员会发出跟踪信息。 有关详细信息,请参阅 .NET Framework 中的网络跟踪。
              BeginGetHostEntry异步操作必须通过调用 EndGetHostEntry 方法来完成。 通常,委托会调用 requestCallback 方法。
在操作完成之前,此方法不会阻止。 若要在操作完成之前阻止,请使用 GetHostEntry 方法。
有关使用异步编程模型的详细信息,请参阅 异步调用同步方法
适用于
BeginGetHostEntry(String, AsyncCallback, Object)
- Source:
- Dns.cs
- Source:
- Dns.cs
- Source:
- Dns.cs
- Source:
- Dns.cs
将主机名或 IP 地址异步解析为 IPHostEntry 实例。
public:
 static IAsyncResult ^ BeginGetHostEntry(System::String ^ hostNameOrAddress, AsyncCallback ^ requestCallback, System::Object ^ stateObject);public static IAsyncResult BeginGetHostEntry(string hostNameOrAddress, AsyncCallback? requestCallback, object? stateObject);public static IAsyncResult BeginGetHostEntry(string hostNameOrAddress, AsyncCallback requestCallback, object stateObject);static member BeginGetHostEntry : string * AsyncCallback * obj -> IAsyncResultPublic Shared Function BeginGetHostEntry (hostNameOrAddress As String, requestCallback As AsyncCallback, stateObject As Object) As IAsyncResult参数
- hostNameOrAddress
- String
要解析的主机名或 IP 地址。
- requestCallback
- AsyncCallback
一个 AsyncCallback 委托,它引用操作完成时要调用的方法。
- stateObject
- Object
一个用户定义对象,其中包含操作的相关信息。 当操作完成时,此对象会被传递给 requestCallback 委托。
返回
引用异步请求的 IAsyncResult 实例。
例外
              hostNameOrAddress 为 null。
              hostNameOrAddress 的长度超过 255 个字符。
解析 hostNameOrAddress 时遇到错误。
              hostNameOrAddress 是无效的 IP 地址。
示例
下面的代码示例使用 BeginGetHostEntry 方法将 IP 地址解析为 IPHostEntry 实例。
// Signals when the resolve has finished.
public static ManualResetEvent GetHostEntryFinished =
    new ManualResetEvent(false);
// Define the state object for the callback.
// Use hostName to correlate calls with the proper result.
public class ResolveState
{
    string hostName;
    IPHostEntry resolvedIPs;
    public ResolveState(string host)
    {
        hostName = host;
    }
    public IPHostEntry IPs
    {
        get { return resolvedIPs; }
        set { resolvedIPs = value; }
    }
    public string host
    {
        get { return hostName; }
        set { hostName = value; }
    }
}
// Record the IPs in the state object for later use.
public static void GetHostEntryCallback(IAsyncResult ar)
{
    ResolveState ioContext = (ResolveState)ar.AsyncState;
    ioContext.IPs = Dns.EndGetHostEntry(ar);
    GetHostEntryFinished.Set();
}
// Determine the Internet Protocol (IP) addresses for
// this host asynchronously.
public static void DoGetHostEntryAsync(string hostname)
{
    GetHostEntryFinished.Reset();
    ResolveState ioContext= new ResolveState(hostname);
    Dns.BeginGetHostEntry(ioContext.host,
        new AsyncCallback(GetHostEntryCallback), ioContext);
    // Wait here until the resolve completes (the callback
    // calls .Set())
    GetHostEntryFinished.WaitOne();
    Console.WriteLine("EndGetHostEntry({0}) returns:", ioContext.host);
    foreach (IPAddress address in ioContext.IPs.AddressList)
    {
        Console.WriteLine($"    {address}");
    }
}
' Signals when the resolve has finished.
Dim Shared GetHostEntryFinished As ManualResetEvent = New ManualResetEvent(False)
' Define the state object for the callback. 
' Use hostName to correlate calls with the proper result.
Class ResolveState
    
    Dim hostName As String
    Dim resolvedIPs As IPHostEntry
    Public Sub New(host As String)
        hostName = host
    End Sub
    Public Property IPs AS IPHostEntry
        Get
            Return resolvedIPs
        End Get
        Set
            resolvedIPs = value
        End Set
    End Property
    Public Property host As String
        Get
            Return hostName
        End Get
        Set
            hostName = value
        End Set
    End Property
End Class
' Record the IPs in the state object for later use.
Shared Sub GetHostEntryCallback(ar As IAsyncResult)
    Dim ioContext As ResolveState = ar.AsyncState
    ioContext.IPs = Dns.EndGetHostEntry(ar)
    GetHostEntryFinished.Set()
End Sub
' Determine the Internet Protocol (IP) addresses for 
' this host asynchronously.
Shared Sub DoGetHostEntryAsync(hostname As String)
    
    GetHostEntryFinished.Reset()
    Dim ioContext As ResolveState = New ResolveState(hostname)
    Dns.BeginGetHostEntry(ioContext.host,AddressOf GetHostEntryCallback, ioContext)
    ' Wait here until the resolve completes (the callback 
    ' calls .Set())
    GetHostEntryFinished.WaitOne()
    Console.WriteLine($"EndGetHostEntry({ioContext.host}) returns:")
    Dim addresses As IPAddress() = ioContext.IPs.AddressList
    Dim index As Integer
    For index = 0 To addresses.Length - 1
        Console.WriteLine($"    {addresses(index)}")
    Next index
End Sub
注解
方法 BeginGetHostEntry 在 DNS 服务器中查询与主机名或 IP 地址关联的 IP 地址。
注意 在应用程序中启用网络跟踪时,此成员会发出跟踪信息。 有关详细信息,请参阅 .NET Framework 中的网络跟踪。
              BeginGetHostEntry异步操作必须通过调用 EndGetHostEntry 方法来完成。 通常,委托会调用 requestCallback 方法。
在操作完成之前,此方法不会阻止。 若要在操作完成之前阻止,请使用 GetHostEntry 方法。
有关使用异步编程模型的详细信息,请参阅 异步调用同步方法。