Сокеты, получите количество доступных байтов (c #)
Вопрос
Добрый день,
Хорошо, коротко и сладко.
Мне нужно получить количество байтов, доступных для чтения из сокета. Я настроил NetworkStream на своем Socket Client, но, похоже, не могу найти, как получить число байтов, доступных для чтения, в настоящий момент я могу получить только логическое выражение "Да, у меня есть байты" или "quot" На этот раз байтов нет. Но это практически полезно для задачи, которую я требую.
Может ли кто-нибудь избавить меня от моих страданий и обеспечить меня моей потребностью?
Заранее спасибо, ценим.
Решение
Как указано в эта статья MSDN о свойстве NetworkStream.Length
:
Получает длину данных, доступных в потоке. Это свойство всегда создает исключение
NotSupportedException
.
Это связано с тем, что данные поступают в поток по мере его поступления, поэтому не имеют фактической длины.
Однако Свойство Socket.Available
сообщает, сколько байтов доступно для чтения в этот момент . Значение может измениться в любой момент времени, если поступят новые данные.
Другие советы