Сокеты, получите количество доступных байтов (c #) - PullRequest
5 голосов
/ 05 августа 2009

Добрый день,

ОК, коротко и сладко.

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

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

Заранее благодарим, оценили.

Ответы [ 2 ]

8 голосов
/ 05 августа 2009

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

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

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

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

4 голосов
/ 05 августа 2009
...