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?