Dns.BeginGetHostEntry Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Asynchronicznie rozpoznaje nazwę hosta lub adres IP wystąpienia IPHostEntry .
Przeciążenia
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
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 wywoływania po zakończeniu operacji.
- stateObject
- Object
Obiekt zdefiniowany przez użytkownika, który zawiera informacje o operacji. Ten obiekt jest przekazywany do delegata requestCallback
po zakończeniu operacji.
Zwraca
Wystąpienie IAsyncResult , które odwołuje się do żądania asynchronicznego.
Wyjątki
address
to 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 =
gcnew ManualResetEvent(false);
// define the state object for the callback.
// use hostName to correlate calls with the proper result.
ref class ResolveState
{
public:
String^ hostName;
IPHostEntry^ resolvedIPs;
ResolveState(String^ host)
{
hostName = host;
}
property IPHostEntry^ IPs
{
IPHostEntry^ get()
{
return resolvedIPs;
}
void set(IPHostEntry^ IPs)
{
resolvedIPs = IPs;
}
}
property String^ host
{
String^ get()
{
return hostName;
}
void set(String^ host)
{
hostName = host;
}
}
};
// Record the IPs in the state object for later use.
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 = gcnew ResolveState(hostName);
Dns::BeginGetHostEntry(ioContext->host,
gcnew AsyncCallback(GetHostEntryCallback), ioContext);
// Wait here until the resolve completes
// (the callback calls .Set())
GetHostEntryFinished->WaitOne();
Console::WriteLine("EndGetHostEntry({0}) returns:", ioContext->host);
for (int i = 0; i < ioContext->IPs->AddressList->Length; i++)
{
Console::WriteLine(" {0}", ioContext->IPs->AddressList[i]->ToString());
}
// for each (IPAddress^ address in ioContext->IPs)
// {
// Console::WriteLine("{0} ", address);
// }
}
// 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 Śledzenie sieci w programie .NET Framework.
Operacja asynchroniczna musi zostać ukończona BeginGetHostEntry przez wywołanie EndGetHostEntry metody . Zazwyczaj metoda jest wywoływana przez delegata requestCallback
.
Ta metoda nie blokuje się do momentu ukończenia operacji. Aby zablokować operację do czasu ukończenia GetHostEntry operacji, użyj metody .
Aby uzyskać szczegółowe informacje na temat korzystania z modelu programowania asynchronicznego, zobacz Asynchroniczne wywoływanie metod synchronicznych
Dotyczy
BeginGetHostEntry(String, AsyncCallback, Object)
- Ź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 wywoływania po zakończeniu operacji.
- stateObject
- Object
Obiekt zdefiniowany przez użytkownika, który zawiera informacje o operacji. Ten obiekt jest przekazywany do delegata requestCallback
po zakończeniu operacji.
Zwraca
Wystąpienie IAsyncResult , które odwołuje się do żądania asynchronicznego.
Wyjątki
hostNameOrAddress
to null
.
Długość hostNameOrAddress
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 =
gcnew ManualResetEvent(false);
// define the state object for the callback.
// use hostName to correlate calls with the proper result.
ref class ResolveState
{
public:
String^ hostName;
IPHostEntry^ resolvedIPs;
ResolveState(String^ host)
{
hostName = host;
}
property IPHostEntry^ IPs
{
IPHostEntry^ get()
{
return resolvedIPs;
}
void set(IPHostEntry^ IPs)
{
resolvedIPs = IPs;
}
}
property String^ host
{
String^ get()
{
return hostName;
}
void set(String^ host)
{
hostName = host;
}
}
};
// Record the IPs in the state object for later use.
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 = gcnew ResolveState(hostName);
Dns::BeginGetHostEntry(ioContext->host,
gcnew AsyncCallback(GetHostEntryCallback), ioContext);
// Wait here until the resolve completes
// (the callback calls .Set())
GetHostEntryFinished->WaitOne();
Console::WriteLine("EndGetHostEntry({0}) returns:", ioContext->host);
for (int i = 0; i < ioContext->IPs->AddressList->Length; i++)
{
Console::WriteLine(" {0}", ioContext->IPs->AddressList[i]->ToString());
}
// for each (IPAddress^ address in ioContext->IPs)
// {
// Console::WriteLine("{0} ", address);
// }
}
// 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 Śledzenie sieci w programie .NET Framework.
Operacja asynchroniczna musi zostać ukończona BeginGetHostEntry przez wywołanie EndGetHostEntry metody . Zazwyczaj metoda jest wywoływana przez delegata requestCallback
.
Ta metoda nie blokuje się do momentu ukończenia operacji. Aby zablokować operację do czasu ukończenia GetHostEntry operacji, użyj metody .
Aby uzyskać szczegółowe informacje na temat korzystania z modelu programowania asynchronicznego, zobacz Asynchroniczne wywoływanie metod synchronicznych.