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
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.
Исключения
Объект 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.
Исключения
Произошла ошибка при попытке доступа к сокету.
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 , чтобы получить подробное описание ошибки.