Re[7]: Блокирующие сокеты
От: artgonch  
Дата: 03.08.04 02:59
Оценка:
Здравствуйте, 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>Но все таки проще использовать неблокирующие, там сложностей же абсолютно никаких нет.

А можно привести простой пример? Буду очень рад и благодарен.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.