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

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

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

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

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

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

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