Socket.SetSocketOption Método

Definição

Define uma opção Socket.Sets a Socket option.

Sobrecargas

SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean)

Define a opção Socket especificada para o valor especificado de Boolean.Sets the specified Socket option to the specified Boolean value.

SetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Define a opção Socket especificada para o valor especificado, representado como uma matriz de bytes.Sets the specified Socket option to the specified value, represented as a byte array.

SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Define a opção Socket especificada para o valor inteiro especificado.Sets the specified Socket option to the specified integer value.

SetSocketOption(SocketOptionLevel, SocketOptionName, Object)

Define a opção Socket especificada com o valor especificado, representado como um objeto.Sets the specified Socket option to the specified value, represented as an object.

SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean)

Define a opção Socket especificada para o valor especificado de Boolean.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

Um dos valores de SocketOptionLevel.One of the SocketOptionLevel values.

optionName
SocketOptionName

Um dos valores de SocketOptionName.One of the SocketOptionName values.

optionValue
Boolean

O valor da opção, representado como um Boolean.The value of the option, represented as a Boolean.

Exceções

O objeto Socket foi fechado.The Socket object has been closed.

Ocorreu um erro ao tentar acessar o soquete.An error occurred when attempting to access the socket.

Exemplos

O exemplo de código a seguir abre um soquete e habilita as DontLinger OutOfBandInline Opções de soquete e.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);

Comentários

Socket as opções determinam o comportamento do atual Socket .Socket options determine the behavior of the current Socket. Defina optionValue como true para habilitar a opção ou para false para desabilitar a opção.Set optionValue to true to enable the option, or to false to disable the option.

Socket as opções são agrupadas por nível de suporte de protocolo.Socket options are grouped by level of protocol support.

Abaixo estão listadas as várias Socket opções que podem ser definidas usando essa sobrecarga.Listed below are the various Socket options that can be set using this overload. Essas opções são agrupadas pelo valor apropriado SocketOptionLevel .These options are grouped by the appropriate SocketOptionLevel value. Se você pretende definir qualquer uma dessas opções, certifique-se de usar o SocketOptionLevel valor apropriado para o optionLevel parâmetro.If you intend to set any of these options, be sure to use the appropriate SocketOptionLevel value for the optionLevel parameter. A opção que você escolher definir deve ser especificada no optionName parâmetro.The option you choose to set must be specified in the optionName parameter. Se você quiser obter o valor atual de qualquer uma das opções listadas, use o GetSocketOption método.If you want to get the current value of any of the options listed, use the GetSocketOption method.

SocketOptionLevel.Socket opções que podem ser definidas usando essa sobrecarga.SocketOptionLevel.Socket options that can be set using this overload.

SocketOptionLevel.IP opções que podem ser definidas usando essa sobrecarga.SocketOptionLevel.IP options that can be set using this overload.

SocketOptionLevel.Tcp opções que podem ser definidas usando essa sobrecarga.SocketOptionLevel.Tcp options that can be set using this overload.

SocketOptionLevel.Udp opções que podem ser definidas usando essa sobrecarga.SocketOptionLevel.Udp options that can be set using this overload.

Para obter mais informações sobre essas opções, consulte a SocketOptionName enumeração.For more information on these options, refer to the SocketOptionName enumeration.

Observação

Se você receber uma SocketException exceção, use a SocketException.ErrorCode propriedade para obter o código de erro específico.If you receive a SocketException exception, use the SocketException.ErrorCode property to obtain the specific error code. Depois de obter esse código, consulte a documentação do código de erro da API do Windows Sockets versão 2 para obter uma descrição detalhada do erro.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

Aplica-se a

SetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Define a opção Socket especificada para o valor especificado, representado como uma 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

Um dos valores de SocketOptionLevel.One of the SocketOptionLevel values.

optionName
SocketOptionName

Um dos valores de SocketOptionName.One of the SocketOptionName values.

optionValue
Byte[]

Uma matriz do tipo Byte que representa o valor da opção.An array of type Byte that represents the value of the option.

Exceções

Ocorreu um erro ao tentar acessar o soquete.An error occurred when attempting to access the socket.

O Socket foi fechado.The Socket has been closed.

Exemplos

O exemplo de código a seguir define os LingerOption valores de e de Send tempo limite.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)

Comentários

Socket as opções determinam o comportamento do atual Socket .Socket options determine the behavior of the current Socket. Use essa sobrecarga para definir as Socket opções que exigem uma matriz de bytes como um valor de opção.Use this overload to set those Socket options that require a byte array as an option value.

Observação

Se você receber um SocketException , use a SocketException.ErrorCode propriedade para obter o código de erro específico.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. Depois de obter esse código, consulte a documentação do código de erro da API do Windows Sockets versão 2 para obter uma descrição detalhada do erro.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

Observação

Esse membro emite o rastreamento de informações quando você ativa o rastreamento de rede em seu aplicativo.This member outputs trace information when you enable network tracing in your application. Para obter mais informações, consulte rastreamento de rede na .NET Framework.For more information, see Network Tracing in the .NET Framework.

Confira também

Aplica-se a

SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Define a opção Socket especificada para o valor inteiro especificado.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

Um dos valores de SocketOptionLevel.One of the SocketOptionLevel values.

optionName
SocketOptionName

Um dos valores de SocketOptionName.One of the SocketOptionName values.

optionValue
Int32

Um valor da opção.A value of the option.

Exceções

Ocorreu um erro ao tentar acessar o soquete.An error occurred when attempting to access the socket.

O Socket foi fechado.The Socket has been closed.

Exemplos

O exemplo de código a seguir define os LingerOption valores de e de Send tempo limite.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)

Comentários

Socket as opções determinam o comportamento do atual Socket .Socket options determine the behavior of the current Socket. Para obter uma opção com um Boolean tipo de dados, especifique um valor diferente de zero para habilitar a opção e um valor zero para desabilitar a opção.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 obter uma opção com um tipo de dados Integer, especifique o valor apropriado.For an option with an integer data type, specify the appropriate value. Socket as opções são agrupadas por nível de suporte de protocolo.Socket options are grouped by level of protocol support.

Abaixo estão listadas as várias Socket opções que podem ser definidas usando essa sobrecarga.Listed below are the various Socket options that can be set using this overload. Essas opções são agrupadas de acordo com o apropriado SocketOptionLevel .These options are grouped by the appropriate SocketOptionLevel. Se você pretende definir qualquer uma dessas opções, certifique-se de usar o apropriado SocketOptionLevel para o optionLevel parâmetro.If you intend to set any of these options, be sure to use the appropriate SocketOptionLevel for the optionLevel parameter. A opção que você escolher definir deve ser especificada no optionName parâmetro.The option you choose to set must be specified in the optionName parameter. Se você quiser obter o valor atual de qualquer uma das opções listadas, use o GetSocketOption método.If you want to get the current value of any of the options listed, use the GetSocketOption method.

SocketOptionLevel.Socket opções que podem ser definidas usando essa sobrecarga.SocketOptionLevel.Socket options that can be set using this overload.

SocketOptionLevel.IP opções que podem ser definidas usando essa sobrecarga.SocketOptionLevel.IP options that can be set using this overload.

SocketOptionLevel.Tcp opções que podem ser definidas usando essa sobrecarga.SocketOptionLevel.Tcp options that can be set using this overload.

SocketOptionLevel.Udp opções que podem ser definidas usando essa sobrecarga.SocketOptionLevel.Udp options that can be set using this overload.

SocketOptionLevel.IPv6 opções que podem ser definidas usando essa sobrecarga.SocketOptionLevel.IPv6 options that can be set using this overload.

Para obter mais informações sobre essas opções, consulte a SocketOptionName enumeração.For more information about these options, refer to the SocketOptionName enumeration.

Observação

Se você receber um SocketException , use a SocketException.ErrorCode propriedade para obter o código de erro específico.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. Depois de obter esse código, consulte a documentação do código de erro da API do Windows Sockets versão 2 para obter uma descrição detalhada do erro.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

Observação

Esse membro emite o rastreamento de informações quando você ativa o rastreamento de rede em seu aplicativo.This member outputs trace information when you enable network tracing in your application. Para obter mais informações, consulte rastreamento de rede na .NET Framework.For more information, see Network Tracing in the .NET Framework.

Confira também

Aplica-se a

SetSocketOption(SocketOptionLevel, SocketOptionName, Object)

Define a opção Socket especificada com o valor especificado, representado como um 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

Um dos valores de SocketOptionLevel.One of the SocketOptionLevel values.

optionName
SocketOptionName

Um dos valores de SocketOptionName.One of the SocketOptionName values.

optionValue
Object

Uma LingerOption ou MulticastOption que contém o valor da opção.A LingerOption or MulticastOption that contains the value of the option.

Exceções

optionValue é null.optionValue is null.

Ocorreu um erro ao tentar acessar o soquete.An error occurred when attempting to access the socket.

O Socket foi fechado.The Socket has been closed.

Exemplos

O exemplo de código a seguir define os LingerOption valores de e de Send tempo limite.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)

Comentários

Socket as opções determinam o comportamento do atual Socket .Socket options determine the behavior of the current Socket. Use essa sobrecarga para definir as Linger AddMembership Opções, e DropMembership Socket .Use this overload to set the Linger, AddMembership, and DropMembershipSocket options. Para a Linger opção, use Socket para o optionLevel parâmetro.For the Linger option, use Socket for the optionLevel parameter. Para o AddMembership e o DropMembership , use IP .For AddMembership and DropMembership, use IP. Se você quiser obter o valor atual de qualquer uma das opções listadas acima, use o GetSocketOption método.If you want to get the current value of any of the options listed above, use the GetSocketOption method.

Observação

Se você receber um SocketException , use a SocketException.ErrorCode propriedade para obter o código de erro específico.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. Depois de obter esse código, consulte a documentação do código de erro da API do Windows Sockets versão 2 para obter uma descrição detalhada do erro.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

Confira também

Aplica-se a