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