Socket.GetSocketOption Socket.GetSocketOption Socket.GetSocketOption Socket.GetSocketOption Method

Definición

Devuelve el valor de una opción de Socket.Returns the value of a Socket option.

Sobrecargas

GetSocketOption(SocketOptionLevel, SocketOptionName) GetSocketOption(SocketOptionLevel, SocketOptionName) GetSocketOption(SocketOptionLevel, SocketOptionName) GetSocketOption(SocketOptionLevel, SocketOptionName)

Devuelve el valor de una opción de Socket especificada en forma de objeto.Returns the value of a specified Socket option, represented as an object.

GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[]) GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[]) GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[]) GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Devuelve el valor de la opción de Socket especificada, representado como una matriz de bytes.Returns the specified Socket option setting, represented as a byte array.

GetSocketOption(SocketOptionLevel, SocketOptionName, Int32) GetSocketOption(SocketOptionLevel, SocketOptionName, Int32) GetSocketOption(SocketOptionLevel, SocketOptionName, Int32) GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Devuelve el valor de la opción de Socket especificada en una matriz.Returns the value of the specified Socket option in an array.

GetSocketOption(SocketOptionLevel, SocketOptionName) GetSocketOption(SocketOptionLevel, SocketOptionName) GetSocketOption(SocketOptionLevel, SocketOptionName) GetSocketOption(SocketOptionLevel, SocketOptionName)

Devuelve el valor de una opción de Socket especificada en forma de objeto.Returns the value of a specified Socket option, represented as an object.

public:
 System::Object ^ GetSocketOption(System::Net::Sockets::SocketOptionLevel optionLevel, System::Net::Sockets::SocketOptionName optionName);
public object GetSocketOption (System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName);
member this.GetSocketOption : System.Net.Sockets.SocketOptionLevel * System.Net.Sockets.SocketOptionName -> obj
Public Function GetSocketOption (optionLevel As SocketOptionLevel, optionName As SocketOptionName) As Object

Parámetros

Devoluciones

Objeto que representa el valor de una opción.An object that represents the value of the option. Cuando se establece el parámetro optionName en Linger, el valor devuelto es una instancia de la clase LingerOption.When the optionName parameter is set to Linger the return value is an instance of the LingerOption class. Cuando se establece el parámetro optionName en AddMembership o DropMembership, el valor devuelto es una instancia de la clase MulticastOption.When optionName is set to AddMembership or DropMembership, the return value is an instance of the MulticastOption class. Cuando optionName está establecido en cualquier otro valor, el valor de devolución es un entero.When optionName is any other value, the return value is an integer.

Excepciones

Error al intentar acceder al socket.An error occurred when attempting to access the socket.

O bien-or- optionName se estableció en el valor MaxConnections, que no es compatible.optionName was set to the unsupported value MaxConnections.

Ejemplos

El siguiente código en el ejemplo se recupera el LingerOption y Send los valores de tiempo de espera y los muestra en la consola.The following code example retrieves the LingerOption and Send time-out values and displays them to the console.

Console::Write(  "This application will timeout if Send does not return within " );
Console::WriteLine( Encoding::ASCII->GetString( s->GetSocketOption( SocketOptionLevel::Socket, SocketOptionName::SendTimeout, 4 ) ) );

// Blocks until send returns.
int i = s->Send( msg );

// Blocks until read returns.
array<Byte>^ bytes = gcnew array<Byte>(1024);

s->Receive( bytes );

//Displays to the screen.
Console::WriteLine( Encoding::ASCII->GetString( bytes ) );
s->Shutdown( SocketShutdown::Both );
Console::Write(  "If data remains to be sent, this application will stay open for " );
Console::WriteLine( safe_cast<LingerOption^>(s->GetSocketOption( SocketOptionLevel::Socket, SocketOptionName::Linger ))->LingerTime.ToString() );
s->Close();
Console.WriteLine ("This application will timeout if Send does not return within " + Encoding.ASCII.GetString (s.GetSocketOption (SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4)));

// blocks until send returns
int i = s.Send (msg);

// blocks until read returns
byte[] bytes = new byte[1024];

s.Receive (bytes);

//Display to the screen
Console.WriteLine (Encoding.ASCII.GetString (bytes));
s.Shutdown (SocketShutdown.Both);
Console.WriteLine ("If data remains to be sent, this application will stay open for " + ((LingerOption)s.GetSocketOption (SocketOptionLevel.Socket, SocketOptionName.Linger)).LingerTime.ToString ());
s.Close ();
    Console.WriteLine(("This application will timeout if Send does not return within " + Encoding.ASCII.GetString(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4))))
    ' blocks until send returns
    Dim i As Integer = s.Send(msg)

    ' blocks until read returns
    Dim bytes(1024) As Byte
    s.Receive(bytes)

    'Display to the screen
    Console.WriteLine(Encoding.ASCII.GetString(bytes))
    s.Shutdown(SocketShutdown.Both)

    Console.WriteLine(("If data remains to be sent, this application will stay open for " + CType(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger), LingerOption).LingerTime.ToString()))
    s.Close()
End Sub 'SetSocketOptions

Comentarios

Socket opciones determinan el comportamiento del elemento actual Socket.Socket options determine the behavior of the current Socket. Utilice esta sobrecarga para obtener el Linger, AddMembership, y DropMembership Socket opciones.Use this overload to get the Linger, AddMembership, and DropMembershipSocket options. Para el Linger opción, utilice Socket para el optionLevel parámetro.For the Linger option, use Socket for the optionLevel parameter. Para AddMembership y DropMembership, utilice IP.For AddMembership and DropMembership, use IP. Si desea establecer el valor de cualquiera de las opciones enumeradas anteriormente, use el SetSocketOption método.If you want to set the value of any of the options listed above, use the SetSocketOption method.

Nota

Si recibe un SocketException, utilice el SocketException.ErrorCode propiedad para obtener el código de error específico.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. Después de haber obtenido este código, consulte el código de error de API de la versión 2 de Windows Sockets documentación para obtener una descripción detallada del error.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

Nota

Este miembro genera información de seguimiento cuando se habilita el seguimiento de red en la aplicación.This member outputs trace information when you enable network tracing in your application. Para obtener más información, consulte seguimiento de red en .NET Framework.For more information, see Network Tracing in the .NET Framework.

Consulte también:

GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[]) GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[]) GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[]) GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Devuelve el valor de la opción de Socket especificada, representado como una matriz de bytes.Returns the specified Socket option setting, represented as a byte array.

public:
 void GetSocketOption(System::Net::Sockets::SocketOptionLevel optionLevel, System::Net::Sockets::SocketOptionName optionName, cli::array <System::Byte> ^ optionValue);
public void GetSocketOption (System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName, byte[] optionValue);
member this.GetSocketOption : System.Net.Sockets.SocketOptionLevel * System.Net.Sockets.SocketOptionName * byte[] -> unit
Public Sub GetSocketOption (optionLevel As SocketOptionLevel, optionName As SocketOptionName, optionValue As Byte())

Parámetros

optionValue
Byte[]

Matriz de tipo Byte que va a recibir el valor de la opción.An array of type Byte that is to receive the option setting.

Excepciones

Error al intentar acceder al socket.An error occurred when attempting to access the socket.

O bien-or- En aplicaciones de .NET Compact Framework, el espacio en búfer predeterminado de Windows CE está establecido en 32768 bytes.In .NET Compact Framework applications, the Windows CE default buffer space is set to 32768 bytes. El espacio en búfer por cada socket puede modificarse mediante una llamada a SetSocketOption.You can change the per socket buffer space by calling SetSocketOption.

Ejemplos

El siguiente código en el ejemplo se recupera el LingerOption y Send los valores de tiempo de espera y los muestra en la consola.The following code example retrieves the LingerOption and Send time-out values and displays them to the console.

Console::Write(  "This application will timeout if Send does not return within " );
Console::WriteLine( Encoding::ASCII->GetString( s->GetSocketOption( SocketOptionLevel::Socket, SocketOptionName::SendTimeout, 4 ) ) );

// Blocks until send returns.
int i = s->Send( msg );

// Blocks until read returns.
array<Byte>^ bytes = gcnew array<Byte>(1024);

s->Receive( bytes );

//Displays to the screen.
Console::WriteLine( Encoding::ASCII->GetString( bytes ) );
s->Shutdown( SocketShutdown::Both );
Console::Write(  "If data remains to be sent, this application will stay open for " );
Console::WriteLine( safe_cast<LingerOption^>(s->GetSocketOption( SocketOptionLevel::Socket, SocketOptionName::Linger ))->LingerTime.ToString() );
s->Close();
Console.WriteLine ("This application will timeout if Send does not return within " + Encoding.ASCII.GetString (s.GetSocketOption (SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4)));

// blocks until send returns
int i = s.Send (msg);

// blocks until read returns
byte[] bytes = new byte[1024];

s.Receive (bytes);

//Display to the screen
Console.WriteLine (Encoding.ASCII.GetString (bytes));
s.Shutdown (SocketShutdown.Both);
Console.WriteLine ("If data remains to be sent, this application will stay open for " + ((LingerOption)s.GetSocketOption (SocketOptionLevel.Socket, SocketOptionName.Linger)).LingerTime.ToString ());
s.Close ();
    Console.WriteLine(("This application will timeout if Send does not return within " + Encoding.ASCII.GetString(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4))))
    ' blocks until send returns
    Dim i As Integer = s.Send(msg)

    ' blocks until read returns
    Dim bytes(1024) As Byte
    s.Receive(bytes)

    'Display to the screen
    Console.WriteLine(Encoding.ASCII.GetString(bytes))
    s.Shutdown(SocketShutdown.Both)

    Console.WriteLine(("If data remains to be sent, this application will stay open for " + CType(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger), LingerOption).LingerTime.ToString()))
    s.Close()
End Sub 'SetSocketOptions

Comentarios

Socket opciones determinan el comportamiento del elemento actual Socket.Socket options determine the behavior of the current Socket. Tras la finalización correcta de este método, la matriz especificada por el optionValue parámetro contiene el valor del elemento especificado Socket opción.Upon successful completion of this method, the array specified by the optionValue parameter contains the value of the specified Socket option.

Cuando la longitud de la optionValue matriz es menor que el número de bytes necesarios para almacenar el valor del elemento especificado Socket opción, GetSocketOption producirá un SocketException.When the length of the optionValue array is smaller than the number of bytes required to store the value of the specified Socket option, GetSocketOption will throw a SocketException. Si recibe un SocketException, utilice el SocketException.ErrorCode propiedad para obtener el código de error específico.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. Después de haber obtenido este código, consulte el código de error de API de la versión 2 de Windows Sockets documentación para obtener una descripción detallada del error.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error. Utilice esta sobrecarga para cualquiera de los sockets que está representada por valores booleanos o enteros.Use this overload for any sockets that are represented by Boolean values or integers.

Nota

Este miembro genera información de seguimiento cuando se habilita el seguimiento de red en la aplicación.This member outputs trace information when you enable network tracing in your application. Para obtener más información, consulte seguimiento de red en .NET Framework.For more information, see Network Tracing in the .NET Framework.

Consulte también:

GetSocketOption(SocketOptionLevel, SocketOptionName, Int32) GetSocketOption(SocketOptionLevel, SocketOptionName, Int32) GetSocketOption(SocketOptionLevel, SocketOptionName, Int32) GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Devuelve el valor de la opción de Socket especificada en una matriz.Returns the value of the specified Socket option in an array.

public:
 cli::array <System::Byte> ^ GetSocketOption(System::Net::Sockets::SocketOptionLevel optionLevel, System::Net::Sockets::SocketOptionName optionName, int optionLength);
public byte[] GetSocketOption (System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName, int optionLength);
member this.GetSocketOption : System.Net.Sockets.SocketOptionLevel * System.Net.Sockets.SocketOptionName * int -> byte[]
Public Function GetSocketOption (optionLevel As SocketOptionLevel, optionName As SocketOptionName, optionLength As Integer) As Byte()

Parámetros

optionLength
Int32 Int32 Int32 Int32

Longitud, en bytes, del valor devuelto previsto.The length, in bytes, of the expected return value.

Devoluciones

Byte[]

Matriz de tipo Byte que contiene el valor de la opción de socket.An array of type Byte that contains the value of the socket option.

Excepciones

Error al intentar acceder al socket.An error occurred when attempting to access the socket.

O bien-or- En aplicaciones de .NET Compact Framework, el espacio en búfer predeterminado de Windows CE está establecido en 32768 bytes.In .NET Compact Framework applications, the Windows CE default buffer space is set to 32768 bytes. El espacio en búfer por cada socket puede modificarse mediante una llamada a SetSocketOption.You can change the per socket buffer space by calling SetSocketOption.

Ejemplos

El siguiente código en el ejemplo se recupera el LingerOption y Send los valores de tiempo de espera y los muestra en la consola.The following code example retrieves the LingerOption and Send time-out values and displays them to the console.

Console::Write(  "This application will timeout if Send does not return within " );
Console::WriteLine( Encoding::ASCII->GetString( s->GetSocketOption( SocketOptionLevel::Socket, SocketOptionName::SendTimeout, 4 ) ) );

// Blocks until send returns.
int i = s->Send( msg );

// Blocks until read returns.
array<Byte>^ bytes = gcnew array<Byte>(1024);

s->Receive( bytes );

//Displays to the screen.
Console::WriteLine( Encoding::ASCII->GetString( bytes ) );
s->Shutdown( SocketShutdown::Both );
Console::Write(  "If data remains to be sent, this application will stay open for " );
Console::WriteLine( safe_cast<LingerOption^>(s->GetSocketOption( SocketOptionLevel::Socket, SocketOptionName::Linger ))->LingerTime.ToString() );
s->Close();
Console.WriteLine ("This application will timeout if Send does not return within " + Encoding.ASCII.GetString (s.GetSocketOption (SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4)));

// blocks until send returns
int i = s.Send (msg);

// blocks until read returns
byte[] bytes = new byte[1024];

s.Receive (bytes);

//Display to the screen
Console.WriteLine (Encoding.ASCII.GetString (bytes));
s.Shutdown (SocketShutdown.Both);
Console.WriteLine ("If data remains to be sent, this application will stay open for " + ((LingerOption)s.GetSocketOption (SocketOptionLevel.Socket, SocketOptionName.Linger)).LingerTime.ToString ());
s.Close ();
    Console.WriteLine(("This application will timeout if Send does not return within " + Encoding.ASCII.GetString(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4))))
    ' blocks until send returns
    Dim i As Integer = s.Send(msg)

    ' blocks until read returns
    Dim bytes(1024) As Byte
    s.Receive(bytes)

    'Display to the screen
    Console.WriteLine(Encoding.ASCII.GetString(bytes))
    s.Shutdown(SocketShutdown.Both)

    Console.WriteLine(("If data remains to be sent, this application will stay open for " + CType(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger), LingerOption).LingerTime.ToString()))
    s.Close()
End Sub 'SetSocketOptions

Comentarios

El optionLength parámetro establece el tamaño máximo de la matriz de bytes devuelta.The optionLength parameter sets the maximum size of the returned byte array. Si el valor de opción requiere menos bytes, la matriz contendrá solo que número de bytes.If the option value requires fewer bytes, the array will contain only that many bytes. Si el valor de opción requiere más bytes GetSocketOption producirá un SocketException.If the option value requires more bytes, GetSocketOption will throw a SocketException. Utilice esta sobrecarga para cualquiera de los sockets que está representada por valores booleanos o enteros.Use this overload for any sockets that are represented by Boolean values or integers.

Nota

Si recibe un SocketException, utilice el SocketException.ErrorCode propiedad para obtener el código de error específico.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. Después de haber obtenido este código, consulte el código de error de API de la versión 2 de Windows Sockets documentación para obtener una descripción detallada del error.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

Nota

Este miembro genera información de seguimiento cuando se habilita el seguimiento de red en la aplicación.This member outputs trace information when you enable network tracing in your application. Para obtener más información, consulte seguimiento de red en .NET Framework.For more information, see Network Tracing in the .NET Framework.

Consulte también:

Se aplica a