Socket.IOControl Método

Definição

Define modos de funcionamento de baixo nível para o Socket.

Sobrecargas

Name Description
IOControl(IOControlCode, Byte[], Byte[])

Define modos de operação de baixo nível para o Socket uso da IOControlCode enumeração para especificar códigos de controlo.

IOControl(Int32, Byte[], Byte[])

Define modos de funcionamento de baixo nível para o Socket uso de códigos numéricos de controlo.

IOControl(IOControlCode, Byte[], Byte[])

Define modos de operação de baixo nível para o Socket uso da IOControlCode enumeração para especificar códigos de controlo.

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);
member this.IOControl : System.Net.Sockets.IOControlCode * byte[] * byte[] -> int
Public Function IOControl (ioControlCode As IOControlCode, optionInValue As Byte(), optionOutValue As Byte()) As Integer

Parâmetros

ioControlCode
IOControlCode

Um valor que especifica IOControlCode o código de controlo da operação a realizar.

optionInValue
Byte[]

Um array de tipo Byte que contém os dados de entrada exigidos pela operação.

optionOutValue
Byte[]

Um array de tipo Byte que contém os dados de saída devolvidos pela operação.

Devoluções

O número de bytes no optionOutValue parâmetro.

Exceções

Ocorreu um erro ao tentar aceder ao soquete.

O Socket local foi encerrado.

Foi feita uma tentativa de alterar o modo de bloqueio sem usar a Blocking propriedade.

Exemplos

O seguinte exemplo de código compara os resultados de chamar IOControl com DataToRead e a Available propriedade.

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;
}

Observações

Este método fornece acesso de baixo nível ao sistema Socket operativo subjacente à instância atual da Socket classe. Para mais informações, consulte a documentação do WSAIoctl .

Note

Se receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico. Depois de obter este código, consulte a documentação do código de erro da API Windows versão 2 dos Sockets para uma descrição detalhada do erro.

Note

Esse membro gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para mais informações, consulte Network Tracing in .NET Framework.

Aplica-se a

IOControl(Int32, Byte[], Byte[])

Define modos de funcionamento de baixo nível para o Socket uso de códigos numéricos de controlo.

public:
 int IOControl(int ioControlCode, cli::array <System::Byte> ^ optionInValue, cli::array <System::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

Parâmetros

ioControlCode
Int32

Um valor que especifica Int32 o código de controlo da operação a realizar.

optionInValue
Byte[]

Um Byte array que contém os dados de entrada necessários pela operação.

optionOutValue
Byte[]

Um Byte array que contém os dados de saída devolvidos pela operação.

Devoluções

O número de bytes no optionOutValue parâmetro.

Exceções

Ocorreu um erro ao tentar aceder ao soquete.

O Socket local foi encerrado.

Foi feita uma tentativa de alterar o modo de bloqueio sem usar a Blocking propriedade.

Um chamador na pilha de chamadas não tem as permissões necessárias.

Exemplos

O seguinte exemplo de código compara os resultados do FIONREAD e da propriedade Disponível.

 // 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;
 }

Observações

O IOControl método fornece acesso de baixo nível ao sistema Socket operativo subjacente à instância atual da Socket classe. Para mais informações, consulte a documentação do WSAIoctl .

Note

Se receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico. Depois de obter este código, consulte a documentação do código de erro da API Windows versão 2 dos Sockets para uma descrição detalhada do erro.

Note

Esse membro gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para mais informações, consulte Network Tracing in .NET Framework.

Aplica-se a