Socket.IOControl Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Задает низкоуровневые режимы работы для .Socket
Перегрузки
| Имя | Описание |
|---|---|
| IOControl(Int32, Byte[], Byte[]) |
Задает низкоуровневые режимы работы для Socket использования числовых кодов управления. |
| IOControl(IOControlCode, Byte[], Byte[]) |
Задает низкоуровневые режимы работы для перечисленияIOControlCode, Socket чтобы указать коды элементов управления. |
IOControl(Int32, Byte[], Byte[])
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
Задает низкоуровневые режимы работы для Socket использования числовых кодов управления.
public:
int IOControl(int ioControlCode, cli::array <System::Byte> ^ optionInValue, cli::array <System::Byte> ^ optionOutValue);
public int IOControl(int ioControlCode, byte[]? optionInValue, byte[]? optionOutValue);
public int IOControl(int ioControlCode, byte[] optionInValue, byte[] optionOutValue);
member this.IOControl : int * byte[] * byte[] -> int
Public Function IOControl (ioControlCode As Integer, optionInValue As Byte(), optionOutValue As Byte()) As Integer
Параметры
Возвращаемое значение
Количество байтов в параметре optionOutValue .
Исключения
Произошла ошибка при попытке доступа к сокету.
Он Socket был закрыт.
Предпринята попытка изменить режим блокировки без использования Blocking свойства.
Вызывающий объект в стеке вызовов не имеет необходимых разрешений.
Примеры
В следующем примере кода сравниваются результаты FIONREAD и свойства Available.
// FIONREAD is also available as the "Available" property.
public const int FIONREAD = 0x4004667F;
static void DisplayPendingByteCount(Socket s)
{
byte[] outValue = BitConverter.GetBytes(0);
// Check how many bytes have been received.
s.IOControl(FIONREAD, null, outValue);
uint bytesAvailable = BitConverter.ToUInt32(outValue, 0);
Console.WriteLine("server has {0} bytes pending. Available property says {1}.",
bytesAvailable, s.Available);
return;
}
Комментарии
Метод IOControl предоставляет низкоуровневый доступ к операционной системе Socket , лежащей в основе текущего экземпляра Socket класса. Дополнительные сведения см. в документации по WSAIoctl .
Замечание
При получении SocketExceptionсвойства используйте SocketException.ErrorCode свойство для получения определенного кода ошибки. Получив этот код, ознакомьтесь с документацией по коду ошибки API сокетов Windows версии 2 , чтобы получить подробное описание ошибки.
Замечание
Этот элемент выводит сведения о трассировке при включении трассировки сети в приложении. Дополнительные сведения см. в разделе "Трассировка сети" в .NET Framework.
Применяется к
IOControl(IOControlCode, Byte[], Byte[])
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
Задает низкоуровневые режимы работы для перечисленияIOControlCode, Socket чтобы указать коды элементов управления.
public:
int IOControl(System::Net::Sockets::IOControlCode ioControlCode, cli::array <System::Byte> ^ optionInValue, cli::array <System::Byte> ^ optionOutValue);
public int IOControl(System.Net.Sockets.IOControlCode ioControlCode, byte[]? optionInValue, byte[]? optionOutValue);
public int IOControl(System.Net.Sockets.IOControlCode ioControlCode, byte[] optionInValue, byte[] optionOutValue);
member this.IOControl : System.Net.Sockets.IOControlCode * byte[] * byte[] -> int
Public Function IOControl (ioControlCode As IOControlCode, optionInValue As Byte(), optionOutValue As Byte()) As Integer
Параметры
- ioControlCode
- IOControlCode
IOControlCode Значение, указывающее код элемента управления для выполнения операции.
Возвращаемое значение
Количество байтов в параметре optionOutValue .
Исключения
Произошла ошибка при попытке доступа к сокету.
Он Socket был закрыт.
Предпринята попытка изменить режим блокировки без использования Blocking свойства.
Примеры
В следующем примере кода сравниваются результаты вызова IOControl с DataToRead свойством Available .
static void DisplayPendingByteCount(Socket s)
{
byte[] outValue = BitConverter.GetBytes(0);
// Check how many bytes have been received.
s.IOControl(IOControlCode.DataToRead, null, outValue);
uint bytesAvailable = BitConverter.ToUInt32(outValue, 0);
Console.Write("server has {0} bytes pending. ",
bytesAvailable);
Console.WriteLine("Available property says {1}.",
s.Available);
return;
}
Комментарии
Этот метод обеспечивает низкоуровневый доступ к операционной системе Socket , базовой текущей экземпляру Socket класса. Дополнительные сведения см. в документации по WSAIoctl .
Замечание
При получении SocketExceptionсвойства используйте SocketException.ErrorCode свойство для получения определенного кода ошибки. Получив этот код, ознакомьтесь с документацией по коду ошибки API сокетов Windows версии 2 , чтобы получить подробное описание ошибки.
Замечание
Этот элемент выводит сведения о трассировке при включении трассировки сети в приложении. Дополнительные сведения см. в разделе "Трассировка сети" в .NET Framework.