Socket.GetSocketOption Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает значение Socket параметра.
Перегрузки
| Имя | Описание |
|---|---|
| GetSocketOption(SocketOptionLevel, SocketOptionName) |
Возвращает значение указанного Socket параметра, представленное как объект. |
| GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[]) |
Возвращает указанный Socket параметр параметра, представленный в виде массива байтов. |
| GetSocketOption(SocketOptionLevel, SocketOptionName, Int32) |
Возвращает значение указанного Socket параметра в массиве. |
GetSocketOption(SocketOptionLevel, SocketOptionName)
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
Возвращает значение указанного Socket параметра, представленное как объект.
public:
System::Object ^ GetSocketOption(System::Net::Sockets::SocketOptionLevel optionLevel, System::Net::Sockets::SocketOptionName optionName);
public object? GetSocketOption(System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName);
public object GetSocketOption(System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName);
member this.GetSocketOption : System.Net.Sockets.SocketOptionLevel * System.Net.Sockets.SocketOptionName -> obj
Public Function GetSocketOption (optionLevel As SocketOptionLevel, optionName As SocketOptionName) As Object
Параметры
- optionLevel
- SocketOptionLevel
Одно из значений SocketOptionLevel .
- optionName
- SocketOptionName
Одно из значений SocketOptionName .
Возвращаемое значение
Объект, представляющий значение параметра.
optionName Если для параметра задано Linger возвращаемое значение, это экземпляр LingerOption класса. Если optionName задано AddMembership значение или DropMembershipзначение возвращаемого значения является экземпляром MulticastOption класса. Если optionName любое другое значение, возвращаемое значение является целым числом.
Исключения
Произошла ошибка при попытке доступа к сокету.
–или–
optionName для параметра не поддерживается значение MaxConnections.
Он Socket был закрыт.
Примеры
В следующем примере кода извлекаются LingerOption значения времени ожидания и Send отображаются в консоли.
Console.WriteLine("This application will timeout if Send does not return within " + Encoding.ASCII.GetString(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4)));
// blocks until send returns
int i = s.Send(msg);
// blocks until read returns
byte[] bytes = new byte[1024];
s.Receive(bytes);
// Display to the screen
Console.WriteLine(Encoding.ASCII.GetString(bytes));
s.Shutdown(SocketShutdown.Both);
Console.WriteLine("If data remains to be sent, this application will stay open for " + ((LingerOption)s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger)).LingerTime.ToString());
s.Close();
Console.WriteLine(("This application will timeout if Send does not return within " + Encoding.ASCII.GetString(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4))))
' blocks until send returns
Dim i As Integer = s.Send(msg)
' blocks until read returns
Dim bytes(1024) As Byte
s.Receive(bytes)
'Display to the screen
Console.WriteLine(Encoding.ASCII.GetString(bytes))
s.Shutdown(SocketShutdown.Both)
Console.WriteLine(("If data remains to be sent, this application will stay open for " + CType(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger), LingerOption).LingerTime.ToString()))
s.Close()
End Sub
Комментарии
Socket параметры определяют поведение текущего Socket. Используйте эту перегрузку для получения LingerAddMembershipпараметров и DropMembershipSocket параметров.
Linger Для параметра используйте Socket параметрoptionLevel. Для AddMembership и DropMembership, используйте IP. Если вы хотите задать значение любого из перечисленных выше параметров, используйте SetSocketOption этот метод.
Замечание
При получении SocketExceptionсвойства используйте SocketException.ErrorCode свойство для получения определенного кода ошибки. Получив этот код, ознакомьтесь с документацией по коду ошибки API сокетов Windows версии 2 , чтобы получить подробное описание ошибки.
Замечание
Этот элемент выводит сведения о трассировке при включении трассировки сети в приложении. Дополнительные сведения см. в разделе "Трассировка сети" в .NET Framework.
См. также раздел
Применяется к
GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
Возвращает указанный Socket параметр параметра, представленный в виде массива байтов.
public:
void GetSocketOption(System::Net::Sockets::SocketOptionLevel optionLevel, System::Net::Sockets::SocketOptionName optionName, cli::array <System::Byte> ^ optionValue);
public void GetSocketOption(System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName, byte[] optionValue);
member this.GetSocketOption : System.Net.Sockets.SocketOptionLevel * System.Net.Sockets.SocketOptionName * byte[] -> unit
Public Sub GetSocketOption (optionLevel As SocketOptionLevel, optionName As SocketOptionName, optionValue As Byte())
Параметры
- optionLevel
- SocketOptionLevel
Одно из значений SocketOptionLevel .
- optionName
- SocketOptionName
Одно из значений SocketOptionName .
Исключения
Произошла ошибка при попытке доступа к сокету.
–или–
В приложениях .NET Compact Framework буферное пространство Windows CE по умолчанию имеет значение 32768 байт. Вы можете изменить пространство буфера сокета, вызвав вызов SetSocketOption.
Он Socket был закрыт.
Примеры
В следующем примере кода извлекаются LingerOption значения времени ожидания и Send отображаются в консоли.
Console.WriteLine("This application will timeout if Send does not return within " + Encoding.ASCII.GetString(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4)));
// blocks until send returns
int i = s.Send(msg);
// blocks until read returns
byte[] bytes = new byte[1024];
s.Receive(bytes);
// Display to the screen
Console.WriteLine(Encoding.ASCII.GetString(bytes));
s.Shutdown(SocketShutdown.Both);
Console.WriteLine("If data remains to be sent, this application will stay open for " + ((LingerOption)s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger)).LingerTime.ToString());
s.Close();
Console.WriteLine(("This application will timeout if Send does not return within " + Encoding.ASCII.GetString(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4))))
' blocks until send returns
Dim i As Integer = s.Send(msg)
' blocks until read returns
Dim bytes(1024) As Byte
s.Receive(bytes)
'Display to the screen
Console.WriteLine(Encoding.ASCII.GetString(bytes))
s.Shutdown(SocketShutdown.Both)
Console.WriteLine(("If data remains to be sent, this application will stay open for " + CType(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger), LingerOption).LingerTime.ToString()))
s.Close()
End Sub
Комментарии
Socket параметры определяют поведение текущего Socket. После успешного завершения этого метода массив, указанный optionValue параметром, содержит значение указанного Socket параметра.
Если длина массива optionValue меньше количества байтов, необходимых для хранения значения указанного Socket параметра, GetSocketOption вызовет исключение SocketException. При получении SocketExceptionсвойства используйте SocketException.ErrorCode свойство для получения определенного кода ошибки. Получив этот код, ознакомьтесь с документацией по коду ошибки API сокетов Windows версии 2 , чтобы получить подробное описание ошибки. Используйте эту перегрузку для любых сокетов, представленных логическими значениями или целыми числами.
Замечание
Этот элемент выводит сведения о трассировке при включении трассировки сети в приложении. Дополнительные сведения см. в разделе "Трассировка сети" в .NET Framework.
См. также раздел
Применяется к
GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
Возвращает значение указанного Socket параметра в массиве.
public:
cli::array <System::Byte> ^ GetSocketOption(System::Net::Sockets::SocketOptionLevel optionLevel, System::Net::Sockets::SocketOptionName optionName, int optionLength);
public byte[] GetSocketOption(System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName, int optionLength);
member this.GetSocketOption : System.Net.Sockets.SocketOptionLevel * System.Net.Sockets.SocketOptionName * int -> byte[]
Public Function GetSocketOption (optionLevel As SocketOptionLevel, optionName As SocketOptionName, optionLength As Integer) As Byte()
Параметры
- optionLevel
- SocketOptionLevel
Одно из значений SocketOptionLevel .
- optionName
- SocketOptionName
Одно из значений SocketOptionName .
- optionLength
- Int32
Длина в байтах ожидаемого возвращаемого значения.
Возвращаемое значение
Массив типа Byte , содержащий значение параметра сокета.
Исключения
Произошла ошибка при попытке доступа к сокету.
–или–
В приложениях .NET Compact Framework буферное пространство Windows CE по умолчанию имеет значение 32768 байт. Вы можете изменить пространство буфера сокета, вызвав вызов SetSocketOption.
Он Socket был закрыт.
Примеры
В следующем примере кода извлекаются LingerOption значения времени ожидания и Send отображаются в консоли.
Console.WriteLine("This application will timeout if Send does not return within " + Encoding.ASCII.GetString(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4)));
// blocks until send returns
int i = s.Send(msg);
// blocks until read returns
byte[] bytes = new byte[1024];
s.Receive(bytes);
// Display to the screen
Console.WriteLine(Encoding.ASCII.GetString(bytes));
s.Shutdown(SocketShutdown.Both);
Console.WriteLine("If data remains to be sent, this application will stay open for " + ((LingerOption)s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger)).LingerTime.ToString());
s.Close();
Console.WriteLine(("This application will timeout if Send does not return within " + Encoding.ASCII.GetString(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4))))
' blocks until send returns
Dim i As Integer = s.Send(msg)
' blocks until read returns
Dim bytes(1024) As Byte
s.Receive(bytes)
'Display to the screen
Console.WriteLine(Encoding.ASCII.GetString(bytes))
s.Shutdown(SocketShutdown.Both)
Console.WriteLine(("If data remains to be sent, this application will stay open for " + CType(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger), LingerOption).LingerTime.ToString()))
s.Close()
End Sub
Комментарии
Параметр optionLength задает максимальный размер возвращаемого массива байтов. Если для значения параметра требуется меньше байтов, массив будет содержать только столько байтов. Если для значения параметра требуется больше байтов, GetSocketOption вызовет SocketExceptionисключение. Используйте эту перегрузку для любых сокетов, представленных логическими значениями или целыми числами.
Замечание
При получении SocketExceptionсвойства используйте SocketException.ErrorCode свойство для получения определенного кода ошибки. Получив этот код, ознакомьтесь с документацией по коду ошибки API сокетов Windows версии 2 , чтобы получить подробное описание ошибки.
Замечание
Этот элемент выводит сведения о трассировке при включении трассировки сети в приложении. Дополнительные сведения см. в разделе "Трассировка сети" в .NET Framework.