AddressFamily Enum

Definition

Specifies the addressing scheme that an instance of the Socket class can use.

public enum class AddressFamily
public enum AddressFamily
type AddressFamily = 
Public Enum AddressFamily
Inheritance
AddressFamily

Fields

AppleTalk 16

AppleTalk address.

Atm 22

Native ATM services address.

Banyan 21

Banyan address.

Ccitt 10

Addresses for CCITT protocols, such as X.25.

Chaos 5

Address for MIT CHAOS protocols.

Cluster 24

Address for Microsoft cluster products.

ControllerAreaNetwork 65537

Controller Area Network address.

DataKit 9

Address for Datakit protocols.

13

Direct data-link interface address.

DecNet 12

DECnet address.

Ecma 8

European Computer Manufacturers Association (ECMA) address.

FireFox 19

FireFox address.

HyperChannel 15

NSC Hyperchannel address.

Ieee12844 25

IEEE 1284.4 workgroup address.

3

ARPANET IMP address.

InterNetwork 2

Address for IP version 4.

InterNetworkV6 23

Address for IP version 6.

Ipx 6

IPX or SPX address.

Irda 26

IrDA address.

Iso 7

Address for ISO protocols.

Lat 14

LAT address.

Max 29

MAX address.

NetBios 17

NetBios address.

NetworkDesigners 28

Address for Network Designers OSI gateway-enabled protocols.

NS 6

Address for Xerox NS protocols.

Osi 7

Address for OSI protocols.

Packet 65536

Low-level Packet address.

Pup 4

Address for PUP protocols.

Sna 11

IBM SNA address.

Unix 1

Unix local to host address.

Unknown -1

Unknown address family.

Unspecified 0

Unspecified address family.

VoiceView 18

VoiceView address.

Examples

The following example creates a Socket using the InterNetwork AddressFamily.

#using <System.dll>

using namespace System;
using namespace System::Text;
using namespace System::IO;
using namespace System::Net;
using namespace System::Net::Sockets;
String^ DoSocketGet( String^ server )
{
   
   //Set up variables and String to write to the server.
   Encoding^ ASCII = Encoding::ASCII;
   String^ Get =  "GET / HTTP/1.1\r\nHost: ";
   Get->Concat( server,  "\r\nConnection: Close\r\n\r\n" );
   array<Byte>^ByteGet = ASCII->GetBytes( Get );
   array<Byte>^RecvBytes = gcnew array<Byte>(256);
   String^ strRetPage = nullptr;
   
   // IPAddress and IPEndPoint represent the endpoint that will
   //   receive the request.
   // Get first IPAddress in list return by DNS.
   try
   {
      
      // Define those variables to be evaluated in the next for loop and 
      // then used to connect to the server. These variables are defined
      // outside the for loop to make them accessible there after.
      Socket^ s = nullptr;
      IPEndPoint^ hostEndPoint;
      IPAddress^ hostAddress = nullptr;
      int conPort = 80;
      
      // Get DNS host information.
      IPHostEntry^ hostInfo = Dns::Resolve( server );
      
      // Get the DNS IP addresses associated with the host.
      array<IPAddress^>^IPaddresses = hostInfo->AddressList;
      
      // Evaluate the socket and receiving host IPAddress and IPEndPoint. 
      for ( int index = 0; index < IPaddresses->Length; index++ )
      {
         hostAddress = IPaddresses[ index ];
         hostEndPoint = gcnew IPEndPoint( hostAddress,conPort );
         
         // Creates the Socket to send data over a TCP connection.
         s = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp );
         
         // Connect to the host using its IPEndPoint.
         s->Connect( hostEndPoint );
         if (  !s->Connected )
         {
            
            // Connection failed, try next IPaddress.
            strRetPage =  "Unable to connect to host";
            s = nullptr;
            continue;
         }

         
         // Sent the GET request to the host.
         s->Send( ByteGet, ByteGet->Length, SocketFlags::None );
         

      }
      
      // Receive the host home page content and loop until all the data is received.
      Int32 bytes = s->Receive( RecvBytes, RecvBytes->Length, SocketFlags::None );
      strRetPage =  "Default HTML page on ";
      strRetPage->Concat( server,  ":\r\n", ASCII->GetString( RecvBytes, 0, bytes ) );
      while ( bytes > 0 )
      {
         bytes = s->Receive( RecvBytes, RecvBytes->Length, SocketFlags::None );
         strRetPage->Concat( ASCII->GetString( RecvBytes, 0, bytes ) );
      }

      
   }
   catch ( SocketException^ e ) 
   {
      Console::WriteLine(  "SocketException caught!!!" );
      Console::Write(  "Source : " );
      Console::WriteLine( e->Source );
      Console::Write(  "Message : " );
      Console::WriteLine( e->Message );
   }
   catch ( ArgumentNullException^ e ) 
   {
      Console::WriteLine(  "ArgumentNULLException caught!!!" );
      Console::Write(  "Source : " );
      Console::WriteLine( e->Source );
      Console::Write(  "Message : " );
      Console::WriteLine( e->Message );
   }
   catch ( NullReferenceException^ e ) 
   {
      Console::WriteLine(  "NULLReferenceException caught!!!" );
      Console::Write(  "Source : " );
      Console::WriteLine( e->Source );
      Console::Write(  "Message : " );
      Console::WriteLine( e->Message );
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine(  "Exception caught!!!" );
      Console::Write(  "Source : " );
      Console::WriteLine( e->Source );
      Console::Write(  "Message : " );
      Console::WriteLine( e->Message );
   }

   return strRetPage;
}

int main()
{
   Console::WriteLine( DoSocketGet(  "localhost" ) );
}

using System;
using System.Text;
using System.IO;
using System.Net;
using System.Net.Sockets;

public class Sample
{

  public static string DoSocketGet(string server) 
  {
    //Set up variables and String to write to the server.
    Encoding ASCII = Encoding.ASCII;
    string Get = "GET / HTTP/1.1\r\nHost: " + server + 
                 "\r\nConnection: Close\r\n\r\n";
    Byte[] ByteGet = ASCII.GetBytes(Get);
    Byte[] RecvBytes = new Byte[256];
    String strRetPage = null;


    // IPAddress and IPEndPoint represent the endpoint that will
    //   receive the request.
    // Get first IPAddress in list return by DNS.


    try
    {


      // Define those variables to be evaluated in the next for loop and 
      // then used to connect to the server. These variables are defined
      // outside the for loop to make them accessible there after.
      Socket s = null;
      IPEndPoint hostEndPoint;
      IPAddress hostAddress = null;
      int conPort = 80;

      // Get DNS host information.
      IPHostEntry hostInfo = Dns.GetHostEntry(server);
      // Get the DNS IP addresses associated with the host.
      IPAddress[] IPaddresses = hostInfo.AddressList;

      // Evaluate the socket and receiving host IPAddress and IPEndPoint. 
      for (int index=0; index<IPaddresses.Length; index++)
      {
        hostAddress = IPaddresses[index];
        hostEndPoint = new IPEndPoint(hostAddress, conPort);


        // Creates the Socket to send data over a TCP connection.
        s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp );


 
        // Connect to the host using its IPEndPoint.
        s.Connect(hostEndPoint);

        if (!s.Connected)
        {
          // Connection failed, try next IPaddress.
          strRetPage = "Unable to connect to host";
          s = null;
          continue;
        }

        // Sent the GET request to the host.
        s.Send(ByteGet, ByteGet.Length, 0);


      } // End of the for loop.      


 
      // Receive the host home page content and loop until all the data is received.
      Int32 bytes = s.Receive(RecvBytes, RecvBytes.Length, 0);
      strRetPage = "Default HTML page on " + server + ":\r\n";
      strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes);
 
      while (bytes > 0)
      {
        bytes = s.Receive(RecvBytes, RecvBytes.Length, 0);
        strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes);
      }

    
    } // End of the try block.
    
    catch(SocketException e) 
    {
      Console.WriteLine("SocketException caught!!!");
      Console.WriteLine("Source : " + e.Source);
      Console.WriteLine("Message : " + e.Message);
    }
    catch(ArgumentNullException e)
    {
      Console.WriteLine("ArgumentNullException caught!!!");
      Console.WriteLine("Source : " + e.Source);
      Console.WriteLine("Message : " + e.Message);
    }
    catch(NullReferenceException e)
    {
      Console.WriteLine("NullReferenceException caught!!!");
      Console.WriteLine("Source : " + e.Source);
      Console.WriteLine("Message : " + e.Message);
    }
    catch(Exception e)
    {
      Console.WriteLine("Exception caught!!!");
      Console.WriteLine("Source : " + e.Source);
      Console.WriteLine("Message : " + e.Message);
    }
    
    return strRetPage;

}
   public static void Main()
   {
      Console.WriteLine(DoSocketGet("localhost"));
   }
 }
Imports System.Text
Imports System.IO
Imports System.Net
Imports System.Net.Sockets

 _

Public Class Sample
   
   
   Public Shared Function DoSocketGet(server As String) As String
      'Set up variables and String to write to the server.
    Dim ASCII As Encoding = Encoding.ASCII
    Dim [Get] As String = "GET / HTTP/1.1" + ControlChars.Lf + ControlChars.NewLine + "Host: " + server + ControlChars.Lf + ControlChars.NewLine + "Connection: Close" + ControlChars.Lf + ControlChars.NewLine + ControlChars.Lf + ControlChars.NewLine
    Dim ByteGet As [Byte]() = ASCII.GetBytes([Get])
    Dim RecvBytes(256) As [Byte]
    Dim strRetPage As [String] = Nothing


      
      ' IPAddress and IPEndPoint represent the endpoint that will
      '   receive the request.
      ' Get first IPAddress in list return by DNS.
      Try

 

         ' Define those variables to be evaluated in the next for loop and 
         ' then used to connect to the server. These variables are defined
         ' outside the for loop to make them accessible there after.
         Dim s As Socket = Nothing
         Dim hostEndPoint As IPEndPoint
         Dim hostAddress As IPAddress = Nothing
         Dim conPort As Integer = 80
         
         ' Get DNS host information.
         Dim hostInfo As IPHostEntry = Dns.Resolve(server)
         ' Get the DNS IP addresses associated with the host.
         Dim IPaddresses As IPAddress() = hostInfo.AddressList
         
         ' Evaluate the socket and receiving host IPAddress and IPEndPoint. 
      Dim index As Integer = 0
      For index = 0 To IPaddresses.Length - 1
        hostAddress = IPaddresses(index)
        hostEndPoint = New IPEndPoint(hostAddress, conPort)


        ' Creates the Socket to send data over a TCP connection.
        s = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)


        ' Connect to the host using its IPEndPoint.
        s.Connect(hostEndPoint)

        If Not s.Connected Then
          ' Connection failed, try next IPaddress.
          strRetPage = "Unable to connect to host"
          s = Nothing
          GoTo ContinueFor1
        End If


        ' Sent the GET request to the host.
        s.Send(ByteGet, ByteGet.Length, 0)


ContinueFor1:
      Next index  ' End of the for loop.
      



      ' Receive the host home page content and loop until all the data is received.

      'Dim bytes As Int32 = s.Receive(RecvBytes, RecvBytes.Length, 0)
      Dim bytes As Int32 = s.Receive(RecvBytes, RecvBytes.Length, 0)

      strRetPage = "Default HTML page on " + server + ":\r\n"
      strRetPage = "Default HTML page on " + server + ":" + ControlChars.Lf + ControlChars.NewLine

      Dim i As Integer

      While bytes > 0

        bytes = s.Receive(RecvBytes, RecvBytes.Length, 0)

        strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes)

      End While


      ' End of the try block.
    Catch e As SocketException
         Console.WriteLine("SocketException caught!!!")
         Console.WriteLine(("Source : " + e.Source))
         Console.WriteLine(("Message : " + e.Message))
      Catch e As ArgumentNullException
         Console.WriteLine("ArgumentNullException caught!!!")
         Console.WriteLine(("Source : " + e.Source))
         Console.WriteLine(("Message : " + e.Message))
      Catch e As NullReferenceException
         Console.WriteLine("NullReferenceException caught!!!")
         Console.WriteLine(("Source : " + e.Source))
         Console.WriteLine(("Message : " + e.Message))
      Catch e As Exception
         Console.WriteLine("Exception caught!!!")
         Console.WriteLine(("Source : " + e.Source))
         Console.WriteLine(("Message : " + e.Message))
      End Try
      
      Return strRetPage
   End Function 'DoSocketGet
    
   Public Shared Sub Main()
    Console.WriteLine(DoSocketGet("localhost"))
   End Sub
End Class

Remarks

An AddressFamily member specifies the addressing scheme that a Socket will use to resolve an address. For example, InterNetwork indicates that an IP version 4 address is expected when a Socket connects to an endpoint.

Applies to

See also