Compartilhar via


setsockopt (Windows Sockets)

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Essa função define uma opção Soquete.

Syntax

int setsockopt(
  SOCKET s,
  int level,
  int optname,
  const char FAR* optval,
  int optlen
);

Parameters

  • s
    [no] Descritor identificando um Soquete.
  • OptName
    [no] Para que o valor é possível definir opção Soquete.
  • optval
    [no] Ponteiro para a reserva em que o valor para a opção solicitada é fornecido.
  • optlen
    [no] Tamanho das optval reserva.

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 chamar WSAStartup deve ocorrer antes de usar essa função.

WSAENETDOWN

Falha no subsistema da rede.

WSAEFAULT

O optval parameteris não EM UM válido parte espaço de endereço o processo ou o optlen parâmetro é muito pequeno.

WSAEINPROGRESS

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

WSAEINVAL

O nível parameteris não é válido ou as informações em optval não é válido.

WSAENETRESET

A conexão foi tempo limite atingido fora quando SO_KEEPALIVE está definido.

WSAENOPROTOOPT

A opção é desconhecida ou sem suporte para o provedor especificado ou o Soquete.

WSAENOTCONN

A conexão tiver sido redefinir quando SO_KEEPALIVE está definida.

WSAENOTSOCK

O descritor não é um Soquete.

Remarks

Essa função define o atual valor para uma opção Soquete associado com um Soquete de qualquer tipo, em qualquer estado. Embora as opções podem existir no múltiplo protocolo níveis, eles são sempre presentes na primeira Soquete nível. Opções afetam operações Soquete, como se dados emitidos (out of banda (OOB) dados de exemplo) são recebidos a fluxo de dados usual e se transmitir mensagens podem ser enviadas na Soquete.

Observação

Se essa função é chamado antes de função bind (Windows Sockets), opções TCP/IP não serão verificadas com TCP/IP até que ocorra a BIND.Neste maiúsculas e minúsculas, o setsockopt função chamar sempre funcionará, mas o BIND função chamar pode falhar devido um antecipado setsockopt falhando.

Há dois tipos de opções Soquete: Boolean opções desse comportamento habilitar ou desativar e opções que requerem um valor inteiro ou estrutura. Para habilitar um Boolean opção, optval aponta para um diferente de zero inteiro. Para desativar a opção, optval aponta para um inteiro igual a zero. O optlen parâmetro deve ser igual a sizeof (INT) para Boolean opções. Para obter outras opções, optval aponta para o inteiro ou estrutura que contém o valor desejado para a opção e optlen é o comprimento do inteiro ou estrutura.

As seguinte opções são com suporte para setsockopt. Para obter valores usar como padrão dessas opções, consulte a coluna Descrição. A coluna Tipo identifica o tipo de dados endereçados pelo optval.

A exibição opções SOL_SOCKET que são são com suporte para setsockopt, consulte SOL_SOCKET.

A exibição opções IPPROTO_TCP que são são com suporte para setsockopt, consulte IPPROTO_TCP.

A exibição opções IPPROTO_IP que são são com suporte para setsockopt, consulte IPPROTO_IP.

A exibição IPPROTO_IPv6 opções que são são com suporte para setsockopt, consulte IPPROTO_IPV6.

A exibição opções IPPROTO_RAW que são são com suporte para setsockopt, consulte Windows Mobile tópico IPPROTO_RAW.

A exibição opções SOL_IRLMP que são são com suporte para setsockopt, consulte SOL_IRLMP.

A seguinte lista mostra opções BSD que não são com suporte para setsockopt .

  • SO_ACCEPTCONN
  • SO_RCVLOWAT
  • SO_RCVTIMEO
  • SO_SNDLOWAT
  • SO_SNDTIMEO
  • SO_TYPE

Anotações de Sockets IrDA

  • O arquivo cabeçalho Af_irda.h deve ser explicitamente incluído.
  • IrDA fornece uma opções configuráveis Soquete. Para obter mais informações, consulte SOL_IRLMP.
  • Muitos SO_ nível Soquete opções não estão significativo para IrDA. Somente SO_LINGER é especificamente com suporte.

Para obter mais inforamtion sobre suporte IrDA no Windows Embedded CE, consulte Infrared Communications.

A seguinte estrutura mostra IAS_SET Usado com o IRLMP_IAS_SET setsockopt opção para gerenciar o local do IAS banco de dados.

typedef struct _IAS_SET
{
    char      irdaClassName[IAS_MAX_CLASSNAME];
    char      irdaAttribName[IAS_MAX_ATTRIBNAME];
    u_long    irdaAttribType;
    union
    {
              LONG irdaAttribInt;
              struct
              {
                   u_short   Len;
                   u_char    OctetSeq[IAS_MAX_OCTET_STRING];
              } irdaAttribOctetSeq;
              struct
              {
                   u_char    Len;
                   u_char    CharSet;
                   u_char    UsrStr[IAS_MAX_USER_STRING];
              } irdaAttribUsrStr;
    } irdaAttribute;
} IAS_SET, *PIAS_SET, FAR *LPIAS_SET;

A seguinte estrutura mostra IAS_QUERY Usado com o IRLMP_IAS_QUERY setsockopt opção para consulta banco de dados do IAS de um ponto.

typedef struct _WINDOWS_IAS_QUERY
{
        u_char   irdaDeviceID[4];
        char     irdaClassName[IAS_MAX_CLASSNAME];
        char     irdaAttribName[IAS_MAX_ATTRIBNAME];
        u_long   irdaAttribType;
        union
        {
                  LONG    irdaAttribInt;
                  struct
                  {
                          u_long  Len;
                          u_char  OctetSeq[IAS_MAX_OCTET_STRING];
                  } irdaAttribOctetSeq;
                  struct
                  {
                          u_long  Len;
                          u_long  CharSet;
                          u_char  UsrStr[IAS_MAX_USER_STRING];
                  } irdaAttribUsrStr;
        } irdaAttribute;
} IAS_QUERY, *PIAS_QUERY, FAR *LPIAS_QUERY;

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

bind (Windows Sockets)
closesocket
getsockopt (Windows Sockets)
ioctlsocket
linger
listen
send
socket (Windows Sockets)
WSAAccept
WSAEventSelect
WSAGetLastError
WSAStartup