Wywoływanie WSASend () w porcie zakończenia?

Wielu z was wie, że oryginalny „send ()” nie zapisuje w wierszu ilości bajtów, o które go prosicie. Łatwo można użyć wskaźnika i pętli, aby upewnić się, że wszystkie dane są wysyłane.

Jednak nie widzę, jak w WSASend () działają porty zakończenia. Powraca natychmiast i nie masz kontroli nad tym, ile zostało wysłane (z wyjątkiem lpLength, do którego masz dostęp w procedurze). Jak to się rozwiązuje?

Czy trzeba wielokrotnie wywoływać WSASend () w procedurze, aby uzyskać wszystkie dane? Czy nie wydaje się to wielką wadą, zwłaszcza jeśli chcesz, aby Twoje dane były w określonej kolejności, a wiele wątków ma dostęp do procedur?

questionAnswers(3)

yourAnswerToTheQuestion