Здравствуйте, XaSSeR, Вы писали:
XSS>Есть програмка, которая ожидает данные из сети, а при получении выполняет определенные действия. Вот ее функции, осуществляющие чтение данных и их обработку:
Для начала код стоит немного поправить...
1) NetworkStream.Read заполнит буфер не полностью, а только на реально прочитанные count байт. Это надо учитывать при обработке массива. Т.е. за 1 чтение данные из сети могут быть получены в общем случае не все.
XSS>XSS> int count = netStream.Read(buffer, 0, buffer.Length);
XSS>
2) Зачем тут catch? Если только длина массива меньше 4 байт, но опять возвращаемся к п.1.
XSS>XSS> public static int StringCount(byte[] recieve)
XSS>
Аналогично с Recive() — строить тут логику управления на исключениях настоятельно не рекомендуется.
XSS>Так, вот. Иногда при приеме данных от клиента из сети принимается пустая строка, то есть NetMessage.Recive(buffer) возвращает пустой массив, хотя должны быть данные. Почему такое происходит?
А что при этом на входе у Recive() ?