CAsyncSocket::enviar

telefonar Essa função de membro para enviar dados em um soquete conectado.

virtual int Send(
   const void* lpBuf,
   int nBufLen,
   int nFlags = 0 
);

Parâmetros

  • lpBuf
    Um buffer que contém os dados sejam transmitidos.

  • nBufLen
    O comprimento dos dados em lpBuf em bytes.

  • nFlags
    Especifica a maneira na qual a telefonar é feita.A semântica dessa função é determinada pelas opções de soquete e o nFlags parâmetro. A segunda é construída pela combinação de qualquer um dos seguintes valores com o C++ OR operador:

    • MSG_DONTROUTE   Especifica que os dados não devem ser sujeita a roteamento.Um fornecedor de Windows Sockets pode optar por ignorar este sinalizar.

    • MSG_OOB   Enviar dados fora de banda (SOCK_STREAM only).

Valor de retorno

Se não houver erro, Enviar retorna o número total de caracteres enviados.(Observe que isso pode ser menor do que o número indicado por nBufLen.) Caso contrário, um valor de SOCKET_ERROR é retornado 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.

  • WSAEACCES   O endereço solicitado é um endereço de difundido, mas o sinalizar apropriado não era conjunto.

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

  • WSAEFAULT   The lpBuf o argumento não é em uma parte do espaço de endereço de usuário válida.

  • WSAENET reiniciar   A conexão deve ser reiniciar porque a implementação do Windows Sockets soltou.

  • WSAENOBUFS   A implementação do Windows Sockets relata um deadlock de buffer.

  • WSAENOTCONN   O soquete não está conectado.

  • WSAENOTSOCK   O descritor não é um soquete.

  • WSAEOPNOTSUPP   MSG_OOB foi especificado, mas o soquete não é do tipo SOCK_STREAM.

  • WSAESHUTDOWN   O soquete foi desligado; não é possível chamar Enviar em um soquete após ShutDown foi chamado com nHow conjunto para 1 ou 2.

  • WSAEWOULDBLOCK   O soquete está marcado sistema autônomo não bloqueadas e bloquearia a operação solicitada.

  • WSAEMSGSIZE   O soquete é do tipo SOCK_DGRAM e o datagrama é maior do que o máximo suportado pela implementação do Windows Sockets.

  • WSAEINVAL   O soquete não foi limite com BIND.

  • WSAECONNABORTED   O circuito virtual foi anulado devido ao tempo limite ou Outros falha.

  • WSAECONNRESET   O circuito virtual foi redefinido pelo lado remoto.

Comentários

Enviar é usado para gravar dados de saída no fluxo conectado ou soquetes datagrama.Para soquetes do datagrama, é preciso ter cuidado para não exceder o IP dimensionar máximo do pacote de sub-redes subjacentes, que é fornecido pelo iMaxUdpDg elemento o WSADATA estrutura retornada por AfxSocketInit. Se os dados forem muito extensas atomicamente passar pelo protocolo subjacente, o erro WSAEMSGSIZE retornado por meio de GetLastError, e nenhum dado é transmitido.

Observe que para um datagrama de soquete a conclusão bem-sucedida de um Enviar não indica que os dados foi entregue com êxito.

On CAsyncSocket objetos do tipo SOCK_STREAM, o número de bytes gravados pode estar entre 1 e o comprimento solicitado, dependendo da disponibilidade de buffer nos hosts locais e estrangeiros.

Exemplo

Consulte o exemplo para CAsyncSocket::OnSend.

Requisitos

Cabeçalho: afxsock.h

Consulte também

Referência

Classe CAsyncSocket

Gráfico de hierarquia

CAsyncSocket::criar

CAsyncSocket::Receive

CAsyncSocket::ReceiveFrom

CAsyncSocket::SendTo

Outros recursos

CAsyncSocket membros