Re: Проблемы при работе с сетью
От: andrey82  
Дата: 11.01.13 12:34
Оценка:
Здравствуйте, 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() ?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.