Czy NetworkStream.DataAvailable widzi zbuforowane dane?

Czy NetworkStream.DataAvailable wie, czy bufor wysyłania nadawcy jest pusty? Czy może po prostu wskazuje, czy bufor odczytu odbiornika zawiera dane? Moim założeniem jest to drugie ...

W szczególności, w przypadku niektórych prac związanych z gniazdami, w których trwa trwająca konwersacja, obecnie używam przedrostka długości, więc odbiornik wie dokładnie, ile danych znajduje się w bieżącej partii; jednak wysłano propozycję .patch. Zamiast tego używam NetworkStream.DataAvailable. Obawiam się, że po prostu powie mi, co ma odbiornik - nie to, co pierwotnie wysłał nadawca - ale nie jestem ekspertem od gniazd.

Czy się mylę? Czy też przedrostek długości jest sposobem na przejście?

(Zauważ, że nie mogę po prostu czytać () dopóki strumień nie zostanie zamknięty, ponieważ wiele partii jest wysyłanych na tym samym połączeniu i ważne jest, aby traktować każdą partię jako oddzielną; jeśli czytam za dużo w jednej partii (nawet jeśli zostanie zbuforowany i odrzucony), a następnie rozmowa zostanie przerwana

questionAnswers(2)

yourAnswerToTheQuestion