Export (0) Print
Expand All

Dns.BeginResolve Method

NOTE: This method is now obsolete.

Begins an asynchronous request to resolve a DNS host name or IP address to an IPAddress instance.

Namespace: System.Net
Assembly: System (in system.dll)

[ObsoleteAttribute(L"BeginResolve is obsoleted for this type, please use BeginGetHostEntry instead. http://go.microsoft.com/fwlink/?linkid=14202")] 
public:
static IAsyncResult^ BeginResolve (
	String^ hostName, 
	AsyncCallback^ requestCallback, 
	Object^ stateObject
)
/** @attribute ObsoleteAttribute("BeginResolve is obsoleted for this type, please use BeginGetHostEntry instead. http://go.microsoft.com/fwlink/?linkid=14202") */ 
public static IAsyncResult BeginResolve (
	String hostName, 
	AsyncCallback requestCallback, 
	Object stateObject
)
ObsoleteAttribute("BeginResolve is obsoleted for this type, please use BeginGetHostEntry instead. http://go.microsoft.com/fwlink/?linkid=14202") 
public static function BeginResolve (
	hostName : String, 
	requestCallback : AsyncCallback, 
	stateObject : Object
) : IAsyncResult

Parameters

hostName

The DNS name of the host.

requestCallback

An AsyncCallback delegate that references the method to invoke when the operation is complete.

stateObject

A user-defined object that contains information about the operation. This object is passed to the requestCallback delegate when the operation is complete.

Return Value

An IAsyncResult instance that references the asynchronous request.

Exception typeCondition

ArgumentNullException

hostName is a null reference (Nothing in Visual Basic).

SocketException

The caller does not have permission to access DNS information.

The asynchronous BeginResolve operation must be completed by calling the EndResolve method. Typically, the method is invoked by the requestCallback delegate.

This method does not block until the operation is complete. To block until the operation is complete, use the Resolve method.

For more information about using the asynchronous programming model, see Calling Synchronous Methods Asynchronously.

NoteNote

This member emits trace information when you enable network tracing in your application. For more information, see Network Tracing.

The following example uses BeginResolve to resolve a DNS host name to an IPAddress.

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;

    static class RequestState
    {
        public IPHostEntry host;

        public RequestState()
        {
            host = null;
        } //RequestState
    } //RequestState

    public static void main(String[] args)
    {
        allDone = new ManualResetEvent(false);        
        
        // Create an instance of the RequestState class.
        RequestState myRequestState = new 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", 
            new AsyncCallback(RespCallback), myRequestState);

        // Wait until asynchronous call completes.
        allDone.WaitOne();
        Console.WriteLine("Host name : " + myRequestState.host.get_HostName());
        Console.WriteLine("\nIP address list : ");
        for (int index = 0; index < myRequestState.host.
            get_AddressList().length; index++) {
            Console.WriteLine(myRequestState.host.get_AddressList().
                get_Item(index));
        }
        Console.WriteLine("\nAliases : ");
        for (int index = 0; index < myRequestState.host.get_Aliases().
            length; index++) {
            Console.WriteLine(myRequestState.host.get_Aliases().
                get_Item(index));
        }
    } //main

    private static void RespCallback(IAsyncResult ar)
    {
        try {
            // Convert the IAsyncResult object to a RequestState object.
            RequestState tempRequestState = (RequestState)ar.get_AsyncState();

            // End the asynchronous request.
            tempRequestState.host = Dns.EndResolve(ar);
            allDone.Set();
        }
        catch (ArgumentNullException e) {
            Console.WriteLine("ArgumentNullException caught!!!");
            Console.WriteLine("Source : " + e.get_Source());
            Console.WriteLine("Message : " + e.get_Message());
        }
        catch (System.Exception e) {
            Console.WriteLine("Exception caught!!!");
            Console.WriteLine("Source : " + e.get_Source());
            Console.WriteLine("Message : " + e.get_Message());
        }
    } //RespCallback
} //DnsBeginGetHostByName

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

.NET Framework

Supported in: 1.0, 1.1
Obsolete (compiler warning) in 2.0

.NET Compact Framework

Supported in: 1.0
Obsolete (compiler warning) in 2.0

Reference

Dns Class
Dns Members
System.Net Namespace

Other Resources

Asynchronous Calls

Community Additions

ADD
Show:
© 2014 Microsoft