Socket.SetSocketOption Метод

Определение

Устанавливает параметр Socket.Sets a Socket option.

Перегрузки

SetSocketOption(SocketOptionLevel, SocketOptionName, Object)

Устанавливает для указанного параметра Socket заданное значение, представленное в виде объекта.Sets the specified Socket option to the specified value, represented as an object.

SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Устанавливает заданное целое значение для указанного параметра Socket.Sets the specified Socket option to the specified integer value.

SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean)

Устанавливает для заданного параметра Socket указанное значение Boolean.Sets the specified Socket option to the specified Boolean value.

SetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Устанавливает для указанного параметра Socket заданное значение, представленное в виде байтового массива.Sets the specified Socket option to the specified value, represented as a byte array.

SetSocketOption(SocketOptionLevel, SocketOptionName, Object)

Устанавливает для указанного параметра Socket заданное значение, представленное в виде объекта.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)

Параметры

optionLevel
SocketOptionLevel

Одно из значений перечисления SocketOptionLevel.One of the SocketOptionLevel values.

optionName
SocketOptionName

Одно из значений перечисления SocketOptionName.One of the SocketOptionName values.

optionValue
Object

Объект LingerOption или MulticastOption, содержащий значение параметра.A LingerOption or MulticastOption that contains the value of the option.

Исключения

Свойство optionValue имеет значение null.optionValue is null.

Произошла ошибка при попытке доступа к сокету.An error occurred when attempting to access the socket.

Socket был закрыт.The Socket has been closed.

Примеры

В следующем примере кода задаются значения времени ожидания LingerOption и 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)

Комментарии

Параметры Socket определяют поведение текущего Socket.Socket options determine the behavior of the current Socket. Используйте эту перегрузку, чтобы задать параметры Linger, AddMembershipи DropMembershipSocket.Use this overload to set the Linger, AddMembership, and DropMembershipSocket options. Для параметра Linger используйте Socket для параметра optionLevel.For the Linger option, use Socket for the optionLevel parameter. Для AddMembership и DropMembershipиспользуйте IP.For AddMembership and DropMembership, use IP. Если вы хотите получить текущее значение любого из перечисленных выше параметров, используйте метод GetSocketOption.If you want to get the current value of any of the options listed above, use the GetSocketOption method.

Примечание

Если вы получаете SocketException, используйте свойство SocketException.ErrorCode для получения конкретного кода ошибки.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. После получения этого кода обратитесь к документации по коду ошибки API Windows Sockets версии 2 для получения подробного описания ошибки.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, Int32)

Устанавливает заданное целое значение для указанного параметра Socket.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)

Параметры

optionLevel
SocketOptionLevel

Одно из значений перечисления SocketOptionLevel.One of the SocketOptionLevel values.

optionName
SocketOptionName

Одно из значений SocketOptionName.One of the SocketOptionName values.

optionValue
Int32

Значение параметра.A value of the option.

Исключения

Произошла ошибка при попытке доступа к сокету.An error occurred when attempting to access the socket.

Socket был закрыт.The Socket has been closed.

Примеры

В следующем примере кода задаются значения времени ожидания LingerOption и 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)

Комментарии

Параметры Socket определяют поведение текущего Socket.Socket options determine the behavior of the current Socket. Для параметра с типом данных Boolean укажите ненулевое значение, чтобы включить параметр, и нулевое значение для отключения параметра.For an option with a Boolean data type, specify a nonzero value to enable the option, and a zero value to disable the option. Для параметра с целочисленным типом данных укажите соответствующее значение.For an option with an integer data type, specify the appropriate value. Параметры Socket группируются по уровню поддержки протокола.Socket options are grouped by level of protocol support.

Ниже приведены различные параметры Socket, которые можно задать с помощью этой перегрузки.Listed below are the various Socket options that can be set using this overload. Эти параметры группируются по соответствующему SocketOptionLevel.These options are grouped by the appropriate SocketOptionLevel. Если вы собираетесь задать любой из этих параметров, обязательно используйте соответствующие SocketOptionLevel для параметра optionLevel.If you intend to set any of these options, be sure to use the appropriate SocketOptionLevel for the optionLevel parameter. Параметр, выбранный для установки, должен быть указан в параметре optionName.The option you choose to set must be specified in the optionName parameter. Если вы хотите получить текущее значение любого из перечисленных параметров, используйте метод GetSocketOption.If you want to get the current value of any of the options listed, use the GetSocketOption method.

SocketOptionLevel.Socket параметры, которые можно задать с помощью этой перегрузки.SocketOptionLevel.Socket options that can be set using this overload.

SocketOptionLevel.IP параметры, которые можно задать с помощью этой перегрузки.SocketOptionLevel.IP options that can be set using this overload.

SocketOptionLevel.Tcp параметры, которые можно задать с помощью этой перегрузки.SocketOptionLevel.Tcp options that can be set using this overload.

SocketOptionLevel.Udp параметры, которые можно задать с помощью этой перегрузки.SocketOptionLevel.Udp options that can be set using this overload.

SocketOptionLevel.IPv6 параметры, которые можно задать с помощью этой перегрузки.SocketOptionLevel.IPv6 options that can be set using this overload.

Дополнительные сведения об этих параметрах см. в описании перечисления SocketOptionName.For more information about these options, refer to the SocketOptionName enumeration.

Примечание

Если вы получаете SocketException, используйте свойство SocketException.ErrorCode для получения конкретного кода ошибки.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. После получения этого кода обратитесь к документации по коду ошибки API Windows Sockets версии 2 для получения подробного описания ошибки.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

Примечание

Данный член генерирует сведения трассировки, если в приложении включена трассировка сети.This member outputs trace information when you enable network tracing in your application. Дополнительные сведения см. в разделе Сетевая трассировка в .NET Framework.For more information, see Network Tracing in the .NET Framework.

Дополнительно

SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean)

Устанавливает для заданного параметра Socket указанное значение 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)

Параметры

optionLevel
SocketOptionLevel

Одно из значений перечисления SocketOptionLevel.One of the SocketOptionLevel values.

optionName
SocketOptionName

Одно из значений SocketOptionName.One of the SocketOptionName values.

optionValue
Boolean

Значение параметра, представленное в виде объекта Boolean.The value of the option, represented as a Boolean.

Исключения

Объект Socket закрыт.The Socket object has been closed.

Произошла ошибка при попытке доступа к сокету.An error occurred when attempting to access the socket.

Примеры

В следующем примере кода открывается сокет и включаются параметры DontLinger и 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);

Комментарии

Параметры Socket определяют поведение текущего Socket.Socket options determine the behavior of the current Socket. Задайте для параметра optionValue значение true, чтобы включить параметр, или false, чтобы отключить параметр.Set optionValue to true to enable the option, or to false to disable the option.

Параметры Socket группируются по уровню поддержки протокола.Socket options are grouped by level of protocol support.

Ниже приведены различные параметры Socket, которые можно задать с помощью этой перегрузки.Listed below are the various Socket options that can be set using this overload. Эти параметры группируются по соответствующему SocketOptionLevelу значению.These options are grouped by the appropriate SocketOptionLevel value. Если вы собираетесь задать любой из этих параметров, обязательно используйте соответствующее значение SocketOptionLevel для параметра optionLevel.If you intend to set any of these options, be sure to use the appropriate SocketOptionLevel value for the optionLevel parameter. Параметр, выбранный для установки, должен быть указан в параметре optionName.The option you choose to set must be specified in the optionName parameter. Если вы хотите получить текущее значение любого из перечисленных параметров, используйте метод GetSocketOption.If you want to get the current value of any of the options listed, use the GetSocketOption method.

SocketOptionLevel.Socket параметры, которые можно задать с помощью этой перегрузки.SocketOptionLevel.Socket options that can be set using this overload.

SocketOptionLevel.IP параметры, которые можно задать с помощью этой перегрузки.SocketOptionLevel.IP options that can be set using this overload.

SocketOptionLevel.Tcp параметры, которые можно задать с помощью этой перегрузки.SocketOptionLevel.Tcp options that can be set using this overload.

SocketOptionLevel.Udp параметры, которые можно задать с помощью этой перегрузки.SocketOptionLevel.Udp options that can be set using this overload.

Дополнительные сведения об этих параметрах см. в описании перечисления SocketOptionName.For more information on these options, refer to the SocketOptionName enumeration.

Примечание

При получении исключения SocketException используйте свойство SocketException.ErrorCode для получения конкретного кода ошибки.If you receive a SocketException exception, use the SocketException.ErrorCode property to obtain the specific error code. После получения этого кода обратитесь к документации по коду ошибки API Windows Sockets версии 2 для получения подробного описания ошибки.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[])

Устанавливает для указанного параметра Socket заданное значение, представленное в виде байтового массива.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())

Параметры

optionLevel
SocketOptionLevel

Одно из значений SocketOptionLevel.One of the SocketOptionLevel values.

optionName
SocketOptionName

Одно из значений перечисления SocketOptionName.One of the SocketOptionName values.

optionValue
Byte[]

Массив типа Byte, который представляет значение параметра.An array of type Byte that represents the value of the option.

Исключения

Произошла ошибка при попытке доступа к сокету.An error occurred when attempting to access the socket.

Socket был закрыт.The Socket has been closed.

Примеры

В следующем примере кода задаются значения времени ожидания LingerOption и 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)

Комментарии

Параметры Socket определяют поведение текущего Socket.Socket options determine the behavior of the current Socket. Используйте эту перегрузку, чтобы задать параметры Socket, для которых требуется массив байтов в качестве значения параметра.Use this overload to set those Socket options that require a byte array as an option value.

Примечание

Если вы получаете SocketException, используйте свойство SocketException.ErrorCode для получения конкретного кода ошибки.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. После получения этого кода обратитесь к документации по коду ошибки API Windows Sockets версии 2 для получения подробного описания ошибки.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

Примечание

Данный член генерирует сведения трассировки, если в приложении включена трассировка сети.This member outputs trace information when you enable network tracing in your application. Дополнительные сведения см. в разделе Сетевая трассировка в .NET Framework.For more information, see Network Tracing in the .NET Framework.

Дополнительно

Применяется к