mam program ktory kozysta z pakietow message oriented.
do tej pory uzywalem recv/send i odbieralem dane po 2 razy - pierwszy dopuki nie odbiore 4 bajtow naglowka, drugi raz dopoku nie odbiore ilosci dnaych zawartych w tych 4 bajtach.
po odebraniu drugiej porcji danych rozbijam to na naglowki i przetwarzam.
Przegladalem sobie msdn zeby sie doksztalcic z winsock2 i znalazlem ciekawa informacje - WSASend/Recv supportuja wlasnie to. Przekazuje im WSABUF i w nim ustalam kolejne naglowki, jest to wygodne.
Ale jak rozwiazac problem kiedy wywolanie WSARecv nie odbierze tylu danych ile bym chcial?
Jak po raz kolejny bede chcial skozystac z tej funkcji bede musial odpowiednio usunac WSABUFy i zmienic pointer z tego co sie nie wyslal/odebral do konca. Wydaje mi sie ze winsock2 jakos rozwiazuje ten problem.
Chcialbym zeby moj event/port/iocompletion zostal powiadomiony dopiero jak przesle tyle bajtow ile podam w strukturach WSABUF, albo jak polaczenie zostanie zamkniete.
Czy moze jednak lepiej manualnie odejmowac lpNumberOfBytesSent odilosci danych jakie chce przeslac, i manualnie updatowac WSABUFy?