send

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Essa função envia dados em um Soquete conectado.

Syntax

int send(
  SOCKET s,
  const char FAR* buf,
  int len,
  int flags
);

Parameters

  • s
    [no] Descritor identificando um Soquete conectado.
  • buf
    [no] Buffer contendo os dados para serem transmitidos.
  • Len
    [no] Comprimento dos dados na buf parâmetro.
  • Sinalizadores
    [no] Indicador especificando a maneira na qual o chamar é feita.

Return Value

Se não houver erro, essa função retorna o número total de bytes enviados, que pode ser Less than o número indicado pelo Len Para de não bloqueio soquetes. 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.

WSAEACCES

O endereço solicitado é um transmitir endereço, mas o apropriado sinalizador não foi definido. Chamar setsockopt (Soquetes do Windows) Com o parâmetro SO_BROADCAST para permitir o uso da transmitir endereço.

WSAEINTR

O Soquete foi fechada.

WSAEINPROGRESS

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

WSAEFAULT

O buf parâmetro não está completamente contido em um válido parte espaço de endereço o usuário.

WSAENETRESET

A conexão foi interrompida devido a a keep-alive atividade detectar uma falha enquanto a operação foi em andamento.

WSAENOBUFS

Nenhuma espaço do buffer está disponível.

WSAENOTCONN

O Soquete não está conectado.

WSAENOTSOCK

O descritor não é um Soquete.

WSAEOPNOTSUPP

MSG_OOB foi especificado, mas o Soquete não é estilo transmitir such as tipo SOCK_STREAM, out of banda (OOB) dados Não Não com suporte no domínio a comunicação associado com este Soquete, ou o Soquete é unidirecional e oferece suporte a receber somente operações.

WSAESHUTDOWN

O Soquete foi desligado. Não é possível enviar um Soquete depois desligamento Tem sido chamado com Como Definido como SD_SEND ou SD_BOTH.

WSAEWOULDBLOCK

O Soquete é marcado como de não bloqueio e a operação solicitada seria bloco.

WSAEMSGSIZE

O Soquete é orientado a mensagem e a mensagem é maior do que o máximo com suporte pela subjacente transporte.

WSAEHOSTUNREACH

O host remoto não pode ser alcançado por meio deste host no momento.

WSAEINVAL

O Soquete não foi ligado com BIND (Soquetes do Windows), um sinalizador desconhecido foi especificado, ou MSG_OOB foi especificado para um Soquete com SO_OOBINLINE habilitado.

WSAECONNABORTED

O circuito virtual foi finalizado devido a um tempo limite ou outra falha. O aplicativo deve fechar o Soquete porque ele não é utilizável.

WSAECONNRESET

O circuito virtual foi redefinir pelo remoto lado executar fechar um disco rígido ou abortive. Para UDP soquetes, o remoto hospedar conseguiu entregar uma datagrama UDP anteriormente enviados e respondeu com um "da Porta Inacessível" Pacote ICMP. O aplicativo deve fechar o Soquete porque ele não é utilizável.

WSAETIMEDOUT

A conexão foi descartada because of falha uma rede ou porque o sistema na outra extremidade entrou pressionada sem aviso.

WSAEPROTONOSUPPORT

Protocolo não é com suporte. De exemplo, para processado soquetes, se o opção definida IP_HDRINCL para o Soquete e no cabeçalho de campo protocolo for definido como TCP.

Remarks

Essa função é usada para gravar de saída dados em um Soquete conectado. Para soquetes orientado a mensagem, deve ter cuidado para não exceder o tamanho máximo de pacote do subjacente provedor, que pode ser obtido usando getsockopt (Soquetes do Windows) Para recuperar o valor da opção Soquete SO_MAX_MSG_SIZE. Se a dados é muito longo para transmitir atomicamente através de subjacente protocolo, o erro é retornado WSAEMSGSIZE e não dados é transmitida.

O bem-sucedido conclusão de uma Enviar chamar não indica que os dados foi entregue com êxito.

Se nenhuma espaço do buffer está disponível no sistema de transporte para armazenar os dados para serem transmitidos, Enviar Será bloco, a menos que a Soquete foi colocado no de não bloqueio modo. Em de não bloqueio Stream-Oriented soquetes, o número de bytes gravados podem estar entre 1 e o comprimento solicitado, dependendo disponibilidade reserva no cliente e servidor máquinas. O Selecione Ou WSAEventSelect função pode ser usada para determinar quando ele é possível enviar mais dados.

O Sinalizadores parâmetro pode ser usado para influenciam o comportamento da função além de opções especificadas para o associado Soquete. A semântica desta função é determinada pelas opções de Soquete e o Sinalizadores parâmetro. A seguinte tabela mostra o valor usado com o operador bit a bit OR para construção o parâmetro sinalizadores.

Valor Descrição

MSG_DONTROUTE

Especifica que os dados não devem ser assunto para roteamento. Um provedor serviço Soquetes do Windows pode escolher para ignorar este sinalizador.

Para obter mais inforamtion sobre suporte IrDA no Windows Embedded CE, consulte Comunicação via infravermelho.

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)
getsockopt (Windows Sockets)
recv
recvfrom
select
sendto
shutdown
setsockopt (Windows Sockets)
socket (Windows Sockets)
WSAEventSelect
WSAGetLastError
WSAStartup