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