CAsyncSocket::IOCtl

telefonar Essa função de membro para controlar o modo de um soquete.

BOOL IOCtl(
   long lCommand,
   DWORD* lpArgument 
);

Parâmetros

  • lCommand
    O comando executar no soquete.

  • lpArgument
    Um ponteiro para um parâmetro para lCommand.

Valor de retorno

Diferente de zero se a função for bem-sucedida; caso contrário, 0, e um código de erro específico pode ser recuperado chamando GetLastError.Os seguintes erros se aplicam a essa função de membro:

  • WSANOTINITIALISED   Um bem-sucedida AfxSocketInit deve ocorrer antes de usar essa API.

  • WSAENETDOWN   A implementação do Windows Sockets detectou que o subsistema de rede falhou.

  • WSAEINVAL   lCommand não é um comando válido, ou lpArgument não é um parâmetro aceitável para lCommand, ou o comando não é aplicável ao tipo de soquete fornecido.

  • WSAEINPROGRESS   Uma operação de bloqueio de Windows Sockets está em andamento.

  • WSAENOTSOCK   O descritor não é um soquete.

Comentários

Esta rotina pode ser usada em qualquer soquete em qualquer estado.Ele é usado para obter ou recuperar os parâmetros operacionais associados com o soquete, independente do subsistema de protocolo e comunicações.Há suporte para os seguintes comandos:

  • FIONBIO   Habilitar ou desabilitar o modo não bloqueado no soquete.The lpArgument parâmetro aponta para um DWORD, que é diferente de zero se o modo não bloqueado é ser ativado e zero se ele deverá ser desabilitado. If AsyncSelect foi emitido em um soquete, e em seguida, qualquer tentativa de usar IOCtl para conjunto o soquete do modo de bloqueio falhará com WSAEINVAL.Para conjunto o soquete para o modo de bloqueio e impedir que o WSAEINVAL erro, um aplicativo deve primeiro desabilitar AsyncSelect chamando AsyncSelect com o lEvent parâmetro igual a 0, em seguida, chamar IOCtl.

  • FIONREAD   Determine o número máximo de bytes que pode ser lido com um Receber telefonar neste soquete.The lpArgument parâmetro aponta para um DWORD em que IOCtl armazena o resultado.Se for esse soquete de digite SOCK_STREAM, FIONREAD retorna a quantidade total de dados que podem ser lidos em um único Receber; isso é normalmente o mesmo que a quantidade total de dados em na fila no soquete.Se for esse soquete de digite SOCK_DGRAM, FIONREAD retorna que o dimensionar do datagrama primeiro na fila no soquete.

  • SIOCATMARK   Determine se todos os dados fora de banda foi lida.Isso se aplica somente a um soquete do tipo SOCK_STREAM que tenha sido configurado para recepção de in-linha dos dados fora de banda (SO_OOBINLINE).Se nenhum dado de out-of-banda está aguardando para serem lidos, a operação retorna diferente de zero.Caso contrário retorna 0 e o próximo Receber or ReceiveFromexecutada no soquete irá recuperar alguns ou todos os dados que precede "a marca"; o aplicativo deve usar o SIOCATMARK operação para determinar se os dados permanecem.Se houver quaisquer dados normais precedendo os dados (out-of-banda) "urgentes", ele será recebido na ordem.(Observe que um Receber or ReceiveFrom irá nunca misture dados fora de banda e normais na mesma telefonar.) The lpArgument parâmetro aponta para um DWORD em que IOCtl armazena o resultado.

Esta função é um subconjunto de IOCTL() sistema autônomo usado em Berkeley soquetes.Em particular, não há um comando que é equivalente a FIOASYNC, while SIOCATMARK é o comando de nível de soquete apenas qual há suporte.

Requisitos

Cabeçalho: afxsock.h

Consulte também

Referência

Classe CAsyncSocket

Gráfico de hierarquia

CAsyncSocket::AsyncSelect

CAsyncSocket::criar

CAsyncSocket::GetSockOpt

CAsyncSocket::SetSockOpt

Outros recursos

CAsyncSocket membros