Socket.SetSocketOption Método

Definición

Establece una opción de Socket.Sets a Socket option.

Sobrecargas

SetSocketOption(SocketOptionLevel, SocketOptionName, Object)

Establece la opción de Socket indicada en el valor especificado, representado como un objeto.Sets the specified Socket option to the specified value, represented as an object.

SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Establece la opción de Socket especificada en el valor entero indicado.Sets the specified Socket option to the specified integer value.

SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean)

Establece la opción de Socket especificada en el valor de Boolean indicado.Sets the specified Socket option to the specified Boolean value.

SetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Establece la opción de Socket indicada en el valor especificado, representado como una matriz de bytes.Sets the specified Socket option to the specified value, represented as a byte array.

SetSocketOption(SocketOptionLevel, SocketOptionName, Object)

Establece la opción de Socket indicada en el valor especificado, representado como un objeto.Sets the specified Socket option to the specified value, represented as an object.

public:
 void SetSocketOption(System::Net::Sockets::SocketOptionLevel optionLevel, System::Net::Sockets::SocketOptionName optionName, System::Object ^ optionValue);
public void SetSocketOption (System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName, object optionValue);
member this.SetSocketOption : System.Net.Sockets.SocketOptionLevel * System.Net.Sockets.SocketOptionName * obj -> unit
Public Sub SetSocketOption (optionLevel As SocketOptionLevel, optionName As SocketOptionName, optionValue As Object)

Parámetros

optionLevel
SocketOptionLevel

Uno de los valores de SocketOptionLevel.One of the SocketOptionLevel values.

optionName
SocketOptionName

Uno de los valores de SocketOptionName.One of the SocketOptionName values.

optionValue
Object

LingerOption o MulticastOption que contiene el valor de la opción.A LingerOption or MulticastOption that contains the value of the option.

Excepciones

optionValue es null.optionValue is null.

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

El Socket se ha cerrado.The Socket has been closed.

Ejemplos

En el ejemplo de código siguiente se establecen los valores de tiempo de espera de LingerOption y Send.The following code example sets the LingerOption and Send time out values.

// Specifies that send operations will time-out 
// if confirmation is not received within 1000 milliseconds.
s->SetSocketOption( SocketOptionLevel::Socket, SocketOptionName::SendTimeout, 1000 );

// Specifies that the Socket will linger for 10 seconds after Close is called.
LingerOption^ lingerOption = gcnew LingerOption( true,10 );

s->SetSocketOption( SocketOptionLevel::Socket, SocketOptionName::Linger, lingerOption );
// Send operations will time-out if confirmation 
// is not received within 1000 milliseconds.
s.SetSocketOption (SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 1000);

// The socket will linger for 10 seconds after Socket.Close is called.
LingerOption lingerOption = new LingerOption (true, 10);

s.SetSocketOption (SocketOptionLevel.Socket, SocketOptionName.Linger, lingerOption);

'Send operations will time-out if confirmation is 
' not received within 1000 milliseconds.
s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 1000)

' The socket will linger for 10 seconds after Socket.Close is called.
Dim lingerOption As New LingerOption(True, 10)
s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger, lingerOption)

Comentarios

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

Nota

Si recibe un SocketException, utilice la propiedad SocketException.ErrorCode 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 obtener este código, consulte la documentación del código de error de la API de Windows Sockets versión 2 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.

Consulte también:

SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Establece la opción de Socket especificada en el valor entero indicado.Sets the specified Socket option to the specified integer value.

public:
 void SetSocketOption(System::Net::Sockets::SocketOptionLevel optionLevel, System::Net::Sockets::SocketOptionName optionName, int optionValue);
public void SetSocketOption (System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName, int optionValue);
member this.SetSocketOption : System.Net.Sockets.SocketOptionLevel * System.Net.Sockets.SocketOptionName * int -> unit
Public Sub SetSocketOption (optionLevel As SocketOptionLevel, optionName As SocketOptionName, optionValue As Integer)

Parámetros

optionLevel
SocketOptionLevel

Uno de los valores de SocketOptionLevel.One of the SocketOptionLevel values.

optionName
SocketOptionName

Uno de los valores de SocketOptionName.One of the SocketOptionName values.

optionValue
Int32

Valor de la opción.A value of the option.

Excepciones

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

El Socket se ha cerrado.The Socket has been closed.

Ejemplos

En el ejemplo de código siguiente se establecen los valores de tiempo de espera de LingerOption y Send.The following code example sets the LingerOption and Send time-out values.

// Specifies that send operations will time-out 
// if confirmation is not received within 1000 milliseconds.
s->SetSocketOption( SocketOptionLevel::Socket, SocketOptionName::SendTimeout, 1000 );

// Specifies that the Socket will linger for 10 seconds after Close is called.
LingerOption^ lingerOption = gcnew LingerOption( true,10 );

s->SetSocketOption( SocketOptionLevel::Socket, SocketOptionName::Linger, lingerOption );
// Send operations will time-out if confirmation 
// is not received within 1000 milliseconds.
s.SetSocketOption (SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 1000);

// The socket will linger for 10 seconds after Socket.Close is called.
LingerOption lingerOption = new LingerOption (true, 10);

s.SetSocketOption (SocketOptionLevel.Socket, SocketOptionName.Linger, lingerOption);

'Send operations will time-out if confirmation is 
' not received within 1000 milliseconds.
s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 1000)

' The socket will linger for 10 seconds after Socket.Close is called.
Dim lingerOption As New LingerOption(True, 10)
s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger, lingerOption)

Comentarios

Socket opciones determinan el comportamiento del Socketactual.Socket options determine the behavior of the current Socket. Para una opción con un tipo de datos Boolean, especifique un valor distinto de cero para habilitar la opción y un valor cero para deshabilitar la opción.For an option with a Boolean data type, specify a nonzero value to enable the option, and a zero value to disable the option. Para una opción con un tipo de datos entero, especifique el valor adecuado.For an option with an integer data type, specify the appropriate value. Socket opciones se agrupan por nivel de compatibilidad con protocolos.Socket options are grouped by level of protocol support.

A continuación se enumeran las distintas opciones de Socket que se pueden establecer mediante esta sobrecarga.Listed below are the various Socket options that can be set using this overload. Estas opciones se agrupan por el SocketOptionLeveladecuado.These options are grouped by the appropriate SocketOptionLevel. Si desea establecer cualquiera de estas opciones, asegúrese de usar el SocketOptionLevel adecuado para el parámetro optionLevel.If you intend to set any of these options, be sure to use the appropriate SocketOptionLevel for the optionLevel parameter. La opción que elija establecer debe especificarse en el parámetro optionName.The option you choose to set must be specified in the optionName parameter. Si desea obtener el valor actual de cualquiera de las opciones enumeradas, use el método GetSocketOption.If you want to get the current value of any of the options listed, use the GetSocketOption method.

SocketOptionLevel.Socket opciones que se pueden establecer mediante esta sobrecarga.SocketOptionLevel.Socket options that can be set using this overload.

SocketOptionLevel.IP opciones que se pueden establecer mediante esta sobrecarga.SocketOptionLevel.IP options that can be set using this overload.

SocketOptionLevel.Tcp opciones que se pueden establecer mediante esta sobrecarga.SocketOptionLevel.Tcp options that can be set using this overload.

SocketOptionLevel.Udp opciones que se pueden establecer mediante esta sobrecarga.SocketOptionLevel.Udp options that can be set using this overload.

SocketOptionLevel.IPv6 opciones que se pueden establecer mediante esta sobrecarga.SocketOptionLevel.IPv6 options that can be set using this overload.

Para obtener más información sobre estas opciones, consulte la enumeración SocketOptionName.For more information about these options, refer to the SocketOptionName enumeration.

Nota

Si recibe un SocketException, utilice la propiedad SocketException.ErrorCode 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 obtener este código, consulte la documentación del código de error de la API de Windows Sockets versión 2 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 el .NET Framework.For more information, see Network Tracing in the .NET Framework.

Consulte también:

SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean)

Establece la opción de Socket especificada en el valor de Boolean indicado.Sets the specified Socket option to the specified Boolean value.

public:
 void SetSocketOption(System::Net::Sockets::SocketOptionLevel optionLevel, System::Net::Sockets::SocketOptionName optionName, bool optionValue);
public void SetSocketOption (System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName, bool optionValue);
member this.SetSocketOption : System.Net.Sockets.SocketOptionLevel * System.Net.Sockets.SocketOptionName * bool -> unit
Public Sub SetSocketOption (optionLevel As SocketOptionLevel, optionName As SocketOptionName, optionValue As Boolean)

Parámetros

optionLevel
SocketOptionLevel

Uno de los valores de SocketOptionLevel.One of the SocketOptionLevel values.

optionName
SocketOptionName

Uno de los valores de SocketOptionName.One of the SocketOptionName values.

optionValue
Boolean

Valor de la opción, representado como Boolean.The value of the option, represented as a Boolean.

Excepciones

El objeto Socket se ha cerrado.The Socket object has been closed.

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

Ejemplos

En el ejemplo de código siguiente se abre un socket y se habilitan las opciones DontLinger y socket OutOfBandInline.The following code example opens a socket and enables the DontLinger and the OutOfBandInline socket options.

// Establish the local endpoint for the socket.
IPHostEntry^ ipHost = Dns::GetHostEntry( Dns::GetHostName() );
IPAddress^ ipAddr = ipHost->AddressList[ 0 ];
IPEndPoint^ ipEndPoint = gcnew IPEndPoint( ipAddr,11000 );

// Create a TCP socket.
Socket^ client = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp );

// Connect the socket to the remote endpoint.
client->Connect( ipEndPoint );

// Set option that allows socket to close gracefully without lingering.
client->SetSocketOption( SocketOptionLevel::Socket, SocketOptionName::DontLinger, true );

// Set option that allows socket to receive out-of-band information in the data stream.
client->SetSocketOption( SocketOptionLevel::Socket, SocketOptionName::OutOfBandInline, true );

// Establish the local endpoint for the socket.
IPHostEntry ipHost = Dns.GetHostEntry(Dns.GetHostName());
IPAddress  ipAddr = ipHost.AddressList[0];
IPEndPoint ipEndPoint = new IPEndPoint(ipAddr, 11000);

// Create a TCP socket.
Socket client = new Socket(AddressFamily.InterNetwork,
    SocketType.Stream, ProtocolType.Tcp);

// Connect the socket to the remote endpoint.
client.Connect(ipEndPoint);

// Set option that allows socket to close gracefully without lingering.
client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.DontLinger, true);

// Set option that allows socket to receive out-of-band information in the data stream.
client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.OutOfBandInline, true);

Comentarios

Socket opciones determinan el comportamiento del Socketactual.Socket options determine the behavior of the current Socket. Establezca optionValue en true para habilitar la opción o en false para deshabilitar la opción.Set optionValue to true to enable the option, or to false to disable the option.

Socket opciones se agrupan por nivel de compatibilidad con protocolos.Socket options are grouped by level of protocol support.

A continuación se enumeran las distintas opciones de Socket que se pueden establecer mediante esta sobrecarga.Listed below are the various Socket options that can be set using this overload. Estas opciones se agrupan por el valor de SocketOptionLevel adecuado.These options are grouped by the appropriate SocketOptionLevel value. Si piensa establecer cualquiera de estas opciones, asegúrese de usar el valor de SocketOptionLevel adecuado para el parámetro optionLevel.If you intend to set any of these options, be sure to use the appropriate SocketOptionLevel value for the optionLevel parameter. La opción que elija establecer debe especificarse en el parámetro optionName.The option you choose to set must be specified in the optionName parameter. Si desea obtener el valor actual de cualquiera de las opciones enumeradas, use el método GetSocketOption.If you want to get the current value of any of the options listed, use the GetSocketOption method.

SocketOptionLevel.Socket opciones que se pueden establecer mediante esta sobrecarga.SocketOptionLevel.Socket options that can be set using this overload.

SocketOptionLevel.IP opciones que se pueden establecer mediante esta sobrecarga.SocketOptionLevel.IP options that can be set using this overload.

SocketOptionLevel.Tcp opciones que se pueden establecer mediante esta sobrecarga.SocketOptionLevel.Tcp options that can be set using this overload.

SocketOptionLevel.Udp opciones que se pueden establecer mediante esta sobrecarga.SocketOptionLevel.Udp options that can be set using this overload.

Para obtener más información sobre estas opciones, consulte la enumeración SocketOptionName.For more information on these options, refer to the SocketOptionName enumeration.

Nota

Si recibe una excepción SocketException, use la propiedad SocketException.ErrorCode para obtener el código de error específico.If you receive a SocketException exception, use the SocketException.ErrorCode property to obtain the specific error code. Después de obtener este código, consulte la documentación del código de error de la API de Windows Sockets versión 2 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.

SetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Establece la opción de Socket indicada en el valor especificado, representado como una matriz de bytes.Sets the specified Socket option to the specified value, represented as a byte array.

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

Parámetros

optionLevel
SocketOptionLevel

Uno de los valores de SocketOptionLevel.One of the SocketOptionLevel values.

optionName
SocketOptionName

Uno de los valores de SocketOptionName.One of the SocketOptionName values.

optionValue
Byte[]

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

Excepciones

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

El Socket se ha cerrado.The Socket has been closed.

Ejemplos

En el ejemplo de código siguiente se establecen los valores de tiempo de espera de LingerOption y Send.The following code example sets the LingerOption and Send time-out values.

// Specifies that send operations will time-out 
// if confirmation is not received within 1000 milliseconds.
s->SetSocketOption( SocketOptionLevel::Socket, SocketOptionName::SendTimeout, 1000 );

// Specifies that the Socket will linger for 10 seconds after Close is called.
LingerOption^ lingerOption = gcnew LingerOption( true,10 );

s->SetSocketOption( SocketOptionLevel::Socket, SocketOptionName::Linger, lingerOption );
// Send operations will time-out if confirmation 
// is not received within 1000 milliseconds.
s.SetSocketOption (SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 1000);

// The socket will linger for 10 seconds after Socket.Close is called.
LingerOption lingerOption = new LingerOption (true, 10);

s.SetSocketOption (SocketOptionLevel.Socket, SocketOptionName.Linger, lingerOption);

'Send operations will time-out if confirmation is 
' not received within 1000 milliseconds.
s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 1000)

' The socket will linger for 10 seconds after Socket.Close is called.
Dim lingerOption As New LingerOption(True, 10)
s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger, lingerOption)

Comentarios

Socket opciones determinan el comportamiento del Socketactual.Socket options determine the behavior of the current Socket. Utilice esta sobrecarga para establecer las Socket opciones que requieren una matriz de bytes como valor de opción.Use this overload to set those Socket options that require a byte array as an option value.

Nota

Si recibe un SocketException, utilice la propiedad SocketException.ErrorCode 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 obtener este código, consulte la documentación del código de error de la API de Windows Sockets versión 2 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 el .NET Framework.For more information, see Network Tracing in the .NET Framework.

Consulte también:

Se aplica a