Język

Dns.BeginGetHostEntry Metoda

Definicja

Asynchronicznie rozpoznaje nazwę hosta lub adres IP wystąpienia IPHostEntry .

Przeciążenia

Nazwa Opis
BeginGetHostEntry(IPAddress, AsyncCallback, Object)

Asynchronicznie rozpoznaje adres IP wystąpienia IPHostEntry .

BeginGetHostEntry(String, AsyncCallback, Object)

Asynchronicznie rozpoznaje nazwę hosta lub adres IP wystąpienia IPHostEntry .

BeginGetHostEntry(IPAddress, AsyncCallback, Object)

Źródło:
Dns.cs
Źródło:
Dns.cs
Źródło:
Dns.cs
Źródło:
Dns.cs
Źródło:
Dns.cs

Asynchronicznie rozpoznaje adres IP wystąpienia 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 -> IAsyncResult
Public Shared Function BeginGetHostEntry (address As IPAddress, requestCallback As AsyncCallback, stateObject As Object) As IAsyncResult

Parametry

address
IPAddress

Adres IP do rozpoznania.

requestCallback
AsyncCallback

Delegat AsyncCallback , który odwołuje się do metody do wywołania po zakończeniu operacji.

stateObject
Object

Obiekt zdefiniowany przez użytkownika zawierający informacje o operacji. Ten obiekt jest przekazywany do delegata po zakończeniu requestCallback operacji.

Zwraca

Wystąpienie IAsyncResult , które odwołuje się do żądania asynchronicznego.

Wyjątki

Parametr address ma wartość null.

Napotkano błąd podczas rozwiązywania problemu address.

address jest nieprawidłowym adresem IP.

Przykłady

W poniższym przykładzie kodu użyto BeginGetHostEntry metody , aby rozpoznać adres IP wystąpienia 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

Uwagi

Metoda BeginGetHostEntry asynchronicznie wysyła zapytanie do serwera DNS dla adresów IP i aliasów skojarzonych z adresem IP.

Uwaga Ten element członkowski emituje informacje śledzenia po włączeniu śledzenia sieci w aplikacji. Aby uzyskać więcej informacji, zobacz Network Tracing w .NET Framework.

Operacja asynchroniczna BeginGetHostEntry musi zostać ukończona przez wywołanie EndGetHostEntry metody . Zazwyczaj metoda jest wywoływana przez delegata requestCallback .

Ta metoda nie blokuje się, dopóki operacja nie zostanie ukończona. Aby zablokować operację do momentu zakończenia operacji, użyj GetHostEntry metody .

Aby uzyskać szczegółowe informacje na temat używania modelu programowania asynchronicznego, zobacz Wywoływanie metod synchronicznych asynchronicznie

Dotyczy

BeginGetHostEntry(String, AsyncCallback, Object)

Źródło:
Dns.cs
Źródło:
Dns.cs
Źródło:
Dns.cs
Źródło:
Dns.cs
Źródło:
Dns.cs

Asynchronicznie rozpoznaje nazwę hosta lub adres IP wystąpienia 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 -> IAsyncResult
Public Shared Function BeginGetHostEntry (hostNameOrAddress As String, requestCallback As AsyncCallback, stateObject As Object) As IAsyncResult

Parametry

hostNameOrAddress
String

Nazwa hosta lub adres IP do rozpoznania.

requestCallback
AsyncCallback

Delegat AsyncCallback , który odwołuje się do metody do wywołania po zakończeniu operacji.

stateObject
Object

Obiekt zdefiniowany przez użytkownika zawierający informacje o operacji. Ten obiekt jest przekazywany do delegata po zakończeniu requestCallback operacji.

Zwraca

Wystąpienie IAsyncResult , które odwołuje się do żądania asynchronicznego.

Wyjątki

Parametr hostNameOrAddress ma wartość null.

Długość hostNameOrAddress znaku jest większa niż 255 znaków.

Napotkano błąd podczas rozwiązywania problemu hostNameOrAddress.

hostNameOrAddress jest nieprawidłowym adresem IP.

Przykłady

W poniższym przykładzie kodu użyto BeginGetHostEntry metody , aby rozpoznać adres IP wystąpienia 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

Uwagi

Metoda BeginGetHostEntry wysyła zapytanie do serwera DNS dla adresu IP skojarzonego z nazwą hosta lub adresem IP.

Uwaga Ten element członkowski emituje informacje śledzenia po włączeniu śledzenia sieci w aplikacji. Aby uzyskać więcej informacji, zobacz Network Tracing w .NET Framework.

Operacja asynchroniczna BeginGetHostEntry musi zostać ukończona przez wywołanie EndGetHostEntry metody . Zazwyczaj metoda jest wywoływana przez delegata requestCallback .

Ta metoda nie blokuje się, dopóki operacja nie zostanie ukończona. Aby zablokować operację do momentu zakończenia operacji, użyj GetHostEntry metody .

Aby uzyskać szczegółowe informacje na temat używania modelu programowania asynchronicznego, zobacz Wywoływanie metod synchronicznych asynchronicznie.

Dotyczy