Сокеты, получите количество доступных байтов (c #)

StackOverflow https://stackoverflow.com/questions/1233842

  •  22-07-2019
  •  | 
  •  

Вопрос

Добрый день,

Хорошо, коротко и сладко.

Мне нужно получить количество байтов, доступных для чтения из сокета. Я настроил NetworkStream на своем Socket Client, но, похоже, не могу найти, как получить число байтов, доступных для чтения, в настоящий момент я могу получить только логическое выражение "Да, у меня есть байты" или "quot" На этот раз байтов нет. Но это практически полезно для задачи, которую я требую.

Может ли кто-нибудь избавить меня от моих страданий и обеспечить меня моей потребностью?

Заранее спасибо, ценим.

Это было полезно?

Решение

Как указано в эта статья MSDN о свойстве NetworkStream.Length :

  

Получает длину данных, доступных в потоке. Это свойство всегда создает исключение NotSupportedException .

Это связано с тем, что данные поступают в поток по мере его поступления, поэтому не имеют фактической длины.

Однако Свойство Socket.Available сообщает, сколько байтов доступно для чтения в этот момент . Значение может измениться в любой момент времени, если поступят новые данные.

Другие советы

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top