AddressFamily Enumeração
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Especifica o esquema de endereçamento que uma instância da classe Socket pode usar.
public enum class AddressFamily
public enum AddressFamily
type AddressFamily =
Public Enum AddressFamily
- Herança
Campos
AppleTalk | 16 | Endereço do AppleTalk. |
Atm | 22 | Endereço de serviços de ATM nativos. |
Banyan | 21 | Endereço do Banyan. |
Ccitt | 10 | Endereços para protocolos CCITT, como X.25. |
Chaos | 5 | Endereço para protocolos MIT CHAOS. |
Cluster | 24 | Endereço para produtos de cluster da Microsoft. |
ControllerAreaNetwork | 65537 | Endereço de rede da área do controlador. |
DataKit | 9 | Endereço para protocolos Datakit. |
DataLink | 13 | Endereço da interface direta de link de dados. |
DecNet | 12 | Endereço DECnet. |
Ecma | 8 | Endereço ECMA (European Computer Manufacturers Association). |
FireFox | 19 | Endereço do FireFox. |
HyperChannel | 15 | Endereço do NSC Hyperchannel. |
Ieee12844 | 25 | Endereço de grupo de trabalho IEEE 1284.4. |
ImpLink | 3 | Endereço IMP ARPANET. |
InterNetwork | 2 | Endereço IP versão 4. |
InterNetworkV6 | 23 | Endereço IP versão 6. |
Ipx | 6 | Endereço IPX ou SPX. |
Irda | 26 | Endereço do IrDA. |
Iso | 7 | Endereço para protocolos ISO. |
Lat | 14 | Endereço LAT. |
Max | 29 | Endereço MAX. |
NetBios | 17 | Endereço do NetBios. |
NetworkDesigners | 28 | Endereço para protocolos habilitados para gateway OSI para designers de rede. |
NS | 6 | Endereço para protocolos Xerox NS. |
Osi | 7 | Endereço para protocolos OSI. |
Packet | 65536 | Endereço do pacote de baixo nível. |
Pup | 4 | Endereço para protocolos PUP. |
Sna | 11 | Endereço SNA da IBM. |
Unix | 1 | Endereço local para host do UNIX. |
Unknown | -1 | Família de endereços desconhecida. |
Unspecified | 0 | Família de endereços não especificada. |
VoiceView | 18 | Endereço do VoiceView. |
Exemplos
O exemplo a seguir cria um Socket usando o 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
Comentários
Um AddressFamily membro especifica o esquema de endereçamento que um Socket usará para resolve um endereço. Por exemplo, InterNetwork indica que um endereço IP versão 4 é esperado quando um Socket se conecta a um ponto de extremidade.