daermon Опубликовано 25 ноября, 2004 Жалоба Поделиться Опубликовано 25 ноября, 2004 Вопрос к тем кто использовал классы 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() стал вести себя "нормально", но уже на клиенте нет. Данные сначала передает клиент серверу, а затем сервер клиенту. Никаких "левых" данных не передается(проверял). Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.