ioctlsocket

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Essa função controla o modo E/S de um Soquete.

Syntax

int ioctlsocket(
  SOCKET s,
  long cmd,
  u_long FAR* argp
);

Parameters

  • s
    [no] Descritor identificando um Soquete.
  • cmd
    [no] Comando para executar em Soquete s.
  • argp
    [in, Out] Ponteiro para um parâmetro para cmd.

Return Value

Se não houver erro, essa função retornará zero. Se um erro ocorrer, será retornado um valor de SOCKET_ERROR, e um código de erro específicos podem ser recuperadas por chamado WSAGetLastError.

A seguinte tabela mostra uma lista dos códigos de erro possível.

Código de erro Descrição

WSANOTINITIALISED

Um bem-sucedido WSAStartup chamar deve ocorrer antes de usar essa função.

WSAENETDOWN

Falha no subsistema da rede.

WSAEINPROGRESS

Um bloqueio é chamar sockets do Windows (Winsock) em andamento, ou o serviço provedor ainda é processamento um função callback.

WSAENOTSOCK

O descritor s não é um Soquete.

WSAEFAULT

O argp parâmetro não é um válido parte espaço de endereço o usuário.

WSAEINVAL

Um sem suporte ou inválido parâmetro.

Remarks

Esta função pode ser usada em qualquer Soquete em qualquer estado. Ele é usado para definir ou recuperar parâmetros operacionais associado com o Soquete, independente do protocolo e subsistema de comunicações. O com suporte comandos para usar na cmd parâmetro e seu semântica é os seguintes.

FIONBIO

Usar FIONBIO com um diferente de zero argp parâmetro para habilitar o de não bloqueio modo do Soquete s. O argp parâmetro será zero se de não bloqueio é a ser desativado. O argp parâmetro aponta para uma sem assinatura valor longo. Quando um Soquete for criada, ela opera no bloqueio modo Por padrão (de não bloqueio modo está desativado). Isso é consistente com soquetes BSD.

O WSAEventSelect função define automaticamente uma Soquete para de não bloqueio modo. Se WSAEventSelect Foi emitido em um Soquete, em seguida, qualquer tentativa de usar ioctlsocket Para definir a Soquete voltar para bloqueio modo falhará com WSAEINVAL.

Para definir a Soquete voltar para bloqueio modo, um aplicativo deve primeiro desativar WSAEventSelect Por chamado WSAEventSelect Com o lNetworkEvents parâmetro igual a zero.

FIONREAD

Usar FIONREAD para determinar a quantidade de dados pendente no buffer de entrada de rede que podem ser ler do Soquete s. O argp parâmetro aponta para uma sem assinatura valor longo no qual ioctlsocket Armazena o resultado. Se s é fluxo-orientados (por exemplo, tipo SOCK_STREAM), FIONREAD retorna a quantidade de dados que podem ser ler em um único chamar para o Recv função; Isso não pode ser o mesmo que a quantidade total de dados enfileirado na Soquete. Se s é orientado a mensagem (por exemplo, tipo SOCK_DGRAM), FIONREAD retorna o tamanho do datagrama a primeira (mensagem) enfileirado na Soquete.

SIOCATMARK

Não é SIOCATMARK com suporte e retorna WSAEINVAL.

Compatibilidade

Isso ioctlsocket função executa somente um subconjunto de funções em um Soquete quando comparado para o IOCTL função encontrada no soquetes Berkeley. O ioctlsocket função não possui nenhum equivalente parâmetro de comando para o FIOASYNC do IOCTLe é SIOCATMARK de Soquete única - nível comando que é com suporte por ioctlsocket.

Observações para Bluetooth

O WSAIoctl e ioctlsocket controle funções o modo de um Soquete. WSAIoctl Requer 2.2 sockets do Windows (Winsock) e permite sobrepostas ou operação assíncrona. O ioctlsocket função pode ser usada com sockets do Windows (Winsock) 1.1 ou posterior. A seguinte lista mostra os códigos IOCTL Bluetooth-específicos que existem:

  • SIO_RFCOMM_COMM_PARAMETERS define ou consultas atributos modem. As estruturas usadas e a semântica chamado é as mesmas como RFCOMM_COMM_PARAMETERS TDI_ACTION.
  • SIO_RFCOMM_WAIT_MODEM_STATUS obtém de atual status do modem. A semântica é os mesmos RFCOMM_MODEM_STATUS TDI_ACTION.

Requirements

Header winsock2.h
Library Ws2.lib
Windows Embedded CE Windows CE 1.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also

Reference

getsockopt (Windows Sockets)
recv
setsockopt (Windows Sockets)
socket (Windows Sockets)
WSAEventSelect
WSAGetLastError
WSAIoctl
WSAStartup