NetworkStream.DataAvailable видит буферизованные данные?

Знает ли NetworkStream.DataAvailable, является ли буфер отправки отправителя пустым? Или это просто указывает, есть ли в буфере чтения получателя данные? Мое предположение последнее ...

В частности, для некоторой работы с сокетом, связанной с продолжающимся диалогом, я в настоящее время использую префикс длины, чтобы получатель точно знал, сколько данных находится в текущем пакете; однако мне прислали патч с предложением использовать вместо него NetworkStream.DataAvailable. Меня беспокоит то, что это просто скажет мне, что получил получатель, а не то, что отправитель изначально отправил, но я не эксперт по сокетам.

Я ошибаюсь? Или это префикс длины?

(обратите внимание, я не могу просто прочитать (), пока поток не будет закрыт, так как несколько пакетов отправляются по одному соединению, и очень важно, чтобы я обрабатывал каждый пакет как отдельный; если я читаю слишком много в одном пакете (даже если он буферизируется и отбрасывается) тогда разговор прервется).

Ответы на вопрос(2)

Ваш ответ на вопрос