Поделиться через


Socket.SetSocketOption Метод

Определение

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

Перегрузки

SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean)

Устанавливает для заданного параметра Socket указанное значение Boolean.

SetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Устанавливает для указанного параметра Socket заданное значение, представленное в виде байтового массива.

SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Устанавливает заданное целое значение для указанного параметра Socket.

SetSocketOption(SocketOptionLevel, SocketOptionName, Object)

Устанавливает для указанного параметра Socket заданное значение, представленное в виде объекта.

SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean)

Исходный код:
Socket.cs
Исходный код:
Socket.cs
Исходный код:
Socket.cs

Устанавливает для заданного параметра Socket указанное значение Boolean.

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.

optionName
SocketOptionName

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

optionValue
Boolean

Значение параметра, представленное в виде объекта Boolean.

Исключения

Объект Socket закрыт.

Произошла ошибка при попытке доступа к сокету.

Примеры

В следующем примере кода открывается сокет и включается DontLinger параметры сокета OutOfBandInline и .

// 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объекта . Задайте значение optionValue , true чтобы включить параметр, или значение , false чтобы отключить параметр.

Socket Параметры группируются по уровню поддержки протокола.

Ниже перечислены различные Socket параметры, которые можно задать с помощью этой перегрузки. Эти параметры группируются по соответствующему SocketOptionLevel значению. Если вы планируете задать какой-либо из этих параметров, обязательно используйте соответствующее SocketOptionLeveloptionLevel значение для параметра . Выбранный параметр должен быть указан в параметре optionName . Если вы хотите получить текущее значение любого из перечисленных параметров, используйте GetSocketOption метод .

SocketOptionLevel.Socket параметры, которые можно задать с помощью этой перегрузки.

SocketOptionLevel.IP параметры, которые можно задать с помощью этой перегрузки.

SocketOptionLevel.Tcp параметры, которые можно задать с помощью этой перегрузки.

SocketOptionLevel.Udp параметры, которые можно задать с помощью этой перегрузки.

Дополнительные сведения об этих параметрах см. в перечислении SocketOptionName .

Примечание

Если вы получили SocketException исключение, используйте свойство , SocketException.ErrorCode чтобы получить конкретный код ошибки. Получив этот код, ознакомьтесь с документацией по коду ошибки API сокетов Windows версии 2 , чтобы получить подробное описание ошибки.

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

SetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Исходный код:
Socket.cs
Исходный код:
Socket.cs
Исходный код:
Socket.cs

Устанавливает для указанного параметра Socket заданное значение, представленное в виде байтового массива.

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.

optionName
SocketOptionName

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

optionValue
Byte[]

Массив типа Byte, который представляет значение параметра.

Исключения

Произошла ошибка при попытке доступа к сокету.

Socket был закрыт.

Примеры

В следующем примере кода задаются LingerOption значения времени ожидания и Send .

// 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);
// The socket will linger for 10 seconds after Socket.Close is called.
var lingerOption = new LingerOption(true, 10);
s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger, lingerOption);
' 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 , которым требуется массив байтов в качестве значения параметра.

Примечание

Если вы получаете SocketException, используйте SocketException.ErrorCode свойство , чтобы получить конкретный код ошибки. Получив этот код, ознакомьтесь с документацией по коду ошибки API сокетов Windows версии 2 , чтобы получить подробное описание ошибки.

Примечание

Данный член генерирует сведения трассировки, если в приложении включена трассировка сети. Дополнительные сведения см. в статье Трассировка сети в платформа .NET Framework.

См. также раздел

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

SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Исходный код:
Socket.cs
Исходный код:
Socket.cs
Исходный код:
Socket.cs

Устанавливает заданное целое значение для указанного параметра Socket.

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.

optionName
SocketOptionName

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

optionValue
Int32

Значение параметра.

Исключения

Произошла ошибка при попытке доступа к сокету.

Socket был закрыт.

Примеры

В следующем примере кода задаются LingerOption значения времени ожидания и Send .

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

Комментарии

Socket параметры определяют поведение текущего Socketобъекта . Для параметра с типом Boolean данных укажите ненулевое значение, чтобы включить параметр, и нулевое значение, чтобы отключить параметр. Для параметра с целочисленным типом данных укажите соответствующее значение. Socket Параметры группируются по уровню поддержки протокола.

Ниже перечислены различные Socket параметры, которые можно задать с помощью этой перегрузки. Эти параметры группируются по соответствующему SocketOptionLevelобъекту . Если вы планируете задать любой из этих параметров, обязательно используйте соответствующий SocketOptionLeveloptionLevel параметр. Выбранный параметр должен быть указан в параметре optionName . Если вы хотите получить текущее значение любого из перечисленных параметров, используйте GetSocketOption метод .

SocketOptionLevel.Socket параметры, которые можно задать с помощью этой перегрузки.

SocketOptionLevel.IP параметры, которые можно задать с помощью этой перегрузки.

SocketOptionLevel.Tcp параметры, которые можно задать с помощью этой перегрузки.

SocketOptionLevel.Udp параметры, которые можно задать с помощью этой перегрузки.

SocketOptionLevel.IPv6 параметры, которые можно задать с помощью этой перегрузки.

Дополнительные сведения об этих параметрах см. в перечислении SocketOptionName .

Примечание

Если вы получаете SocketException, используйте SocketException.ErrorCode свойство , чтобы получить конкретный код ошибки. Получив этот код, ознакомьтесь с документацией по коду ошибки API сокетов Windows версии 2 , чтобы получить подробное описание ошибки.

Примечание

Данный член генерирует сведения трассировки, если в приложении включена трассировка сети. Дополнительные сведения см. в статье Трассировка сети в платформа .NET Framework.

См. также раздел

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

SetSocketOption(SocketOptionLevel, SocketOptionName, Object)

Исходный код:
Socket.cs
Исходный код:
Socket.cs
Исходный код:
Socket.cs

Устанавливает для указанного параметра Socket заданное значение, представленное в виде объекта.

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.

optionName
SocketOptionName

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

optionValue
Object

Объект LingerOption или MulticastOption, содержащий значение параметра.

Исключения

optionValue имеет значение null.

Произошла ошибка при попытке доступа к сокету.

Socket был закрыт.

Примеры

В следующем примере кода задаются LingerOption значения времени ожидания и Send .

// 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);
// The socket will linger for 10 seconds after Socket.Close is called.
var lingerOption = new LingerOption(true, 10);
s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger, lingerOption);
' 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объекта . Используйте эту перегрузку, чтобы задать Lingerпараметры , AddMembershipи DropMembershipSocket . Linger Для параметра используйте Socket для optionLevel параметра . Для AddMembership и DropMembershipиспользуйте IP. Если вы хотите получить текущее значение любого из перечисленных выше параметров, используйте GetSocketOption метод .

Примечание

Если вы получаете SocketException, используйте SocketException.ErrorCode свойство , чтобы получить конкретный код ошибки. Получив этот код, ознакомьтесь с документацией по коду ошибки API сокетов Windows версии 2 , чтобы получить подробное описание ошибки.

См. также раздел

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