Chamando WSASend () na porta de conclusão?

Muitos de vocês sabem que o "send ()" original não vai escrever para o fio a quantidade de bytes que você pede. Facilmente você pode usar um ponteiro e um loop para garantir que todos os seus dados sejam enviados.

No entanto, não vejo como no WSASend () e as portas de conclusão funcionam neste caso. Ele retorna imediatamente e você não tem controle sobre quanto foi enviado (exceto em um lpLength que você tem acesso na rotina). Como isso é resolvido?

Você precisa chamar WSASend () na rotina várias vezes para obter todos os dados? Isso não parece ser uma grande desvantagem, especialmente se você quiser que seus dados saiam em uma ordem específica e que vários segmentos acessem as rotinas?

questionAnswers(3)

yourAnswerToTheQuestion