![]() |
Модераторы: feodorv |
![]() ![]() ![]() |
|
Nuzur |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 4.7.2004 Репутация: нет Всего: 5 |
Сабж.
-------------------- Never again... |
|||
|
||||
ptr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 661 Регистрация: 31.5.2006 Где: Новосибирск Репутация: 9 Всего: 14 |
Что recv уже не моде? А зачем потребовалось буфер то очищать?
-------------------- Единственный способ определить границы возможного - это выйти за эти границы, в невозможное. Артур Кларк. |
|||
|
||||
Nuzur |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 4.7.2004 Репутация: нет Всего: 5 |
ptr, recv и пользуюсь, буфер нужно очищать ибо идет интенсивный обмен между модулями и нужно кормить лиш частями которые до этого не принимали участие в обработке, а сохранять то что уже передал в каком то буфере а потом их сравнивать нет возможности :(
Ситуация осложняется тем что заранее неизвестно размер пакета а пакет нужно передать целиком, посему постоянно получается информация до момента либа таймаута либо до момента остановки передачи, что то в духе внутреннего тайм аута. ЗЫ С одной стороны я уже решил задачу, но решение - велосипед. ЗЫ Спросить каков размер буфера до его получения невозможно ибо это внешнее устройство и оно молчит как партизан. ЗЫ Знаю что это все возможно не правильное планирование, но мы живем в материальном мире :( Это сообщение отредактировал(а) Nuzur - 12.10.2007, 09:29 -------------------- Never again... |
|||
|
||||
GrayCardinal |
|
|||
Фигасе ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3039 Регистрация: 9.11.2003 Репутация: 3 Всего: 58 |
Берём :
возвращает кол-во байт, доступных для чтения (т.е. которые в приёмном буфере), Затем, собственно, recv читаем эти байты... куда-нибудь. Всё, буфер чист... Это сообщение отредактировал(а) GrayCardinal - 12.10.2007, 10:32 |
|||
|
||||
Nuzur |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 4.7.2004 Репутация: нет Всего: 5 |
GrayCardinal, а будет ли оно верно работать в том случаи если мы при выполении функции попали на середину передачи, тоесть выполнитса ли функция или будет ждать финала передачи? И как она узнает когда передача будет завершена?
-------------------- Never again... |
|||
|
||||
GrayCardinal |
|
|||
Фигасе ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3039 Регистрация: 9.11.2003 Репутация: 3 Всего: 58 |
Nuzur,
Никак не узнает. Вернёт только сколько уже есть, ничего дожидаться не будет... Добавлено через 1 минуту и 44 секунды ЗЫ Удобно при получении UDP-шек, позволяет размер буфера делать один к одному, но и с TCP работает ... |
|||
|
||||
Nuzur |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 4.7.2004 Репутация: нет Всего: 5 |
GrayCardinal, тогда это не решает моей проблемы...
-------------------- Never again... |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |