Dns.BeginGetHostEntry Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Асинхронно разрешает имя узла или IP-адрес экземпляра IPHostEntry.
Перегрузки
| Имя | Описание |
|---|---|
| BeginGetHostEntry(IPAddress, AsyncCallback, Object) |
Асинхронно разрешает IP-адрес в экземпляр IPHostEntry. |
| BeginGetHostEntry(String, AsyncCallback, Object) |
Асинхронно разрешает имя узла или IP-адрес экземпляра IPHostEntry. |
BeginGetHostEntry(IPAddress, AsyncCallback, Object)
- Исходный код:
- Dns.cs
- Исходный код:
- Dns.cs
- Исходный код:
- Dns.cs
- Исходный код:
- 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 -> IAsyncResult
Public 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)
- Исходный код:
- Dns.cs
- Исходный код:
- Dns.cs
- Исходный код:
- Dns.cs
- Исходный код:
- 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 -> IAsyncResult
Public 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 метод .
Подробные сведения об использовании асинхронной модели программирования см. в разделе Асинхронный вызов синхронных методов.