Здравствуйте, DimV, Вы писали:
DV>Здравствуйте, artgonch, Вы писали:
A>>Здравствуйте, DimV, Вы писали:
DV>>>Да.
DV>>>Еще вариант делать чтение с флагом Peek.
A>>А как потом удалить данные, которые я уже скопировал в свой буффер?
DV>Peek использовать только для проверки есть буфере что-нибудь или нет а читать как обычно. Правда такой подход не рекомендуется применять.
А если я передам в метод Receive нулевую ссылку на бефер, 0 байтов для чтения и флаг Peek, буде ли это правильно?
DV>Можно чтение с блокирующим сокетом поместить в отдельный поток.
У меня он и работает в отдельном потоке. Вот как я хочу сделать:
Byte[] buf = new Byte[ 1024 ];
s.Receive(buf, // Buffer
0, // Прочиать 0 байт
SocketFlags.Peek); // Не удалять из буфреа
int len = 0;
int total = s.Available;
while ((len + s.Receive(buf)) < total)
{
...
}
DV>Но все таки проще использовать неблокирующие, там сложностей же абсолютно никаких нет.
А можно привести простой пример? Буду очень рад и благодарен.