NetworkStream.DataAvailable работает не так как нужно! - C#

Узнай цену своей работы

Формулировка задачи:

try
            {
                byte[] bytes = new byte[Settings.PARTSIZE];
                int i = 0;
                do
                {
                    byte[] bytes1 = new byte[Settings.PARTSIZE];
                    int c = stream.Read(bytes1, 0, bytes1.Length);
 
                    for (int j = 0; j < c && i < bytes.Length; j++, i++)
                    {
                        bytes[i] = bytes1[j];
                    }
 
                    if (i == bytes.Length) break;
                }
                while (stream.DataAvailable);
 
                byte[] bytes2 = new byte[i];
                Array.Copy(bytes, bytes2, bytes2.Length);
 
                return bytes2;
            }
            catch
            {
                return new byte[0];
            }
Бывает моменты когда приходит не весь массив байт, а лишь часть его! что я не так делаю??

Решение задачи: «NetworkStream.DataAvailable работает не так как нужно!»

textual
Листинг программы
        static public int ReadCount(NetworkStream stream)
        {
            using (var reader = new BinaryReader(stream))
                return reader.ReadInt32();
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.667 из 5
Похожие ответы