AddressFamily Enumeração
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Especifica o esquema de endereçamento que uma instância da Socket classe pode usar.
public enum class AddressFamily
public enum AddressFamily
type AddressFamily =
Public Enum AddressFamily
- Herança
Campos
| Name | Valor | Description |
|---|---|---|
| Unknown | -1 | Endereço desconhecido, família. |
| Unspecified | 0 | Família de endereços não especificados. |
| Unix | 1 | Unix local para o endereço do host. |
| InterNetwork | 2 | Endereço para IP versão 4. |
| ImpLink | 3 | Endereço ARPANET IMP. |
| Pup | 4 | Endereço para protocolos PUP. |
| Chaos | 5 | Endereço dos protocolos MIT CHAOS. |
| Ipx | 6 | Endereço IPX ou SPX. |
| NS | 6 | Endereço para protocolos Xerox NS. |
| Iso | 7 | Endereço para protocolos ISO. |
| Osi | 7 | Endereço para protocolos OSI. |
| Ecma | 8 | Endereço da Associação Europeia de Fabricantes de Computadores (ECMA). |
| DataKit | 9 | Endereço para protocolos Datakit. |
| Ccitt | 10 | Endereços para protocolos CCITT, como X.25. |
| Sna | 11 | Endereço SNA da IBM. |
| DecNet | 12 | Endereço DECnet. |
| DataLink | 13 | Endereço direto da interface de ligação de dados. |
| Lat | 14 | Endereço LAT. |
| HyperChannel | 15 | Endereço do Hipercanal NSC. |
| AppleTalk | 16 | Endereço AppleTalk. |
| NetBios | 17 | Endereço NetBios. |
| VoiceView | 18 | Endereço VoiceView. |
| FireFox | 19 | Endereço FireFox. |
| Banyan | 21 | Endereço Banyan. |
| Atm | 22 | Endereço dos serviços nativos de multibanco. |
| InterNetworkV6 | 23 | Endereço para IP versão 6. |
| Cluster | 24 | Endereço para produtos cluster Microsoft. |
| Ieee12844 | 25 | Endereço do grupo de trabalho IEEE 1284.4. |
| Irda | 26 | Endereço do IrDA. |
| NetworkDesigners | 28 | Endereço para protocolos OSI gateway-enabled dos Network Designers. |
| Max | 29 | Endereço MAX. |
| Packet | 65536 | Endereço de pacote de baixo nível. |
| ControllerAreaNetwork | 65537 | Endereço da Rede da Área do Controlador. |
Exemplos
O exemplo seguinte cria um Socket usando a InterNetwork AddressFamily.
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
Observações
Um AddressFamily membro especifica o esquema de endereçamento que um Socket irá usar para resolver um endereço. Por exemplo, o InterNetwork indica que se espera um endereço IP versão 4 quando a Socket se liga a um endpoint.