библиотека ptypes

Все о программировании под *nix
Аватара пользователя
daermon
Заглянувший
Сообщения: 14
Зарегистрирован: 13 авг 2004, 00:17
Откуда: Minsk

библиотека ptypes

Сообщение daermon »

Вопрос к тем кто использовал классы ipstream и ipstmserver.
Вобще говоря у меня 2 вопроса:
- почему происходит блокировка при вызове метода read класса ipstream когда count > реально переданных данных (интересует потому, что при вызове системного вызова read в подобной ситуации, функция возвращает реальное число считанный байт и блокировка на возникает)
- объясните странное поведение метода waitfor(). Небольшой кусок кода:

Код: Выделить всё

while(m_client->waitfor(m_timewait) && *size<m_datawindowsize)
        {
            m_client->read((m_datawindow + *size), 1);
            (*size)++;
        }
при передачи кол-ва данных N < m_datawindowsize waitfor() говорит что в канале есть данные даже после считывания N байт и функция read далее считывает '\0' до тех пор пока всех считанных данных не станет m_datawindowssize(т.е. пока не выйдет по условию цикла). Данный кусок кода есть и на клиенте и на сервере, причем сначала такой глюк был на сервере, а потом на сервере waitfor() стал вести себя "нормально", но уже на клиенте нет. Данные сначала передает клиент серверу, а затем сервер клиенту. Никаких "левых" данных не передается(проверял).
Ум подобен желудку. Важно не то, сколько ты в него вложишь, а то сколько он сможет переварить.