Specifies the addressing scheme that an instance of the Socket class can use.
[Visual Basic]
<Serializable>
Public Enum AddressFamily
[C#]
[Serializable]
public enum AddressFamily
[C++]
[Serializable]
__value public enum AddressFamily
[JScript]
public
Serializable
enum AddressFamily
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.
Members
| Member name | Description |
| AppleTalk Supported by the .NET Compact Framework. | AppleTalk address. |
| Atm Supported by the .NET Compact Framework. | Native ATM services address. |
| Banyan Supported by the .NET Compact Framework. | Banyan address. |
| Ccitt Supported by the .NET Compact Framework. | Addresses for CCITT protocols, such as X.25. |
| Chaos Supported by the .NET Compact Framework. | Address for MIT CHAOS protocols. |
| Cluster Supported by the .NET Compact Framework. | Address for Microsoft cluster products. |
| DataKit Supported by the .NET Compact Framework. | Address for Datakit protocols. |
| DataLink Supported by the .NET Compact Framework. | Direct data-link interface address. |
| DecNet Supported by the .NET Compact Framework. | DECnet address. |
| Ecma Supported by the .NET Compact Framework. | European Computer Manufacturers Association (ECMA) address. |
| FireFox Supported by the .NET Compact Framework. | FireFox address. |
| HyperChannel Supported by the .NET Compact Framework. | NSC Hyperchannel address. |
| Ieee12844 Supported by the .NET Compact Framework. | IEEE 1284.4 workgroup address. |
| ImpLink Supported by the .NET Compact Framework. | ARPANET IMP address. |
| InterNetwork Supported by the .NET Compact Framework. | Address for IP version 4. |
| InterNetworkV6 Supported by the .NET Compact Framework. | Address for IP version 6. |
| Ipx Supported by the .NET Compact Framework. | IPX or SPX address. |
| Irda Supported by the .NET Compact Framework. | IrDA address. |
| Iso Supported by the .NET Compact Framework. | Address for ISO protocols. |
| Lat Supported by the .NET Compact Framework. | LAT address. |
| Max Supported by the .NET Compact Framework. | MAX address. |
| NetBios Supported by the .NET Compact Framework. | NetBios address. |
| NetworkDesigners Supported by the .NET Compact Framework. | Address for Network Designers OSI gateway-enabled protocols. |
| NS Supported by the .NET Compact Framework. | Address for Xerox NS protocols. |
| Osi Supported by the .NET Compact Framework. | Address for ISO protocols. |
| Pup Supported by the .NET Compact Framework. | Address for PUP protocols. |
| Sna Supported by the .NET Compact Framework. | IBM SNA address. |
| Unix Supported by the .NET Compact Framework. | Unix local to host address. |
| Unknown Supported by the .NET Compact Framework. | Unknown address family. |
| Unspecified Supported by the .NET Compact Framework. | Unspecified address family. |
| VoiceView Supported by the .NET Compact Framework. | VoiceView address. |
Example
[Visual Basic, C#, C++] The following example creates a Socket using the InterNetwork AddressFamily.
[Visual Basic]
Imports System
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 'Main
End Class 'Sample
[C#]
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.Resolve(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"));
}
}
[C++]
#using <mscorlib.dll>
#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");
Byte ByteGet[] = ASCII->GetBytes(Get);
Byte RecvBytes[] = new Byte[256];
String *strRetPage = 0;
// 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 = 0;
IPEndPoint *hostEndPoint;
IPAddress *hostAddress = 0;
int conPort = 80;
// Get DNS host information.
IPHostEntry *hostInfo = Dns::Resolve(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 = 0;
continue;
}
// Sent the GET request to the host.
s->Send(ByteGet, ByteGet->Length, SocketFlags::None);
} // 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, 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));
}
} // End of the try block.
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"));
}
[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button
in the upper-left corner of the page.
Requirements
Namespace: System.Net.Sockets
Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, .NET Compact Framework
Assembly: System (in System.dll)
See Also
System.Net.Sockets Namespace | IPAddress | EndPoint