Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.07.2013, 11:36   #1
mkotov
Новичок
Джуниор
 
Регистрация: 17.07.2013
Сообщений: 2
По умолчанию Алгоритм. Буферизация. Синхронизация.

Здравствуйте.
Интерес к С++ проявился в желании написать утилиту одну. Потихоньку разбираюсь.

Что должна делать утилита:
считывать UDP пакеты из сети, выполнять проверку, помещать в буфер. Если по результатам проверки данные пришли неправильные вместо них класть в буфер резервный фрагмент. И параллельно считывать из буфера и выдавать обратно в сеть.

Сейчас пытаюсь продумать алгоритм.

Пока такое вырисовывается:
1. Открываем соединения
2. бесконечный цикл приема:
while(....){
count = recv(....);
проверяем содержимое пакет
если проверка прошла записываем пакет в буфер
если проверка не прошла записываем в буфер резервный пакет
отправляем пакет из буфера в сеть
}

И я в тупике. Пока пакеты приходят работает. А если пакет вовремя не пришел - то как бы надо идти по другой ветке алгоритма - обрабатывать ошибку.
Вот какую функцию или оборот можно использовать в качестве таймера? Чтоб он по истечении определенного времени ожидания пакета запускал функцию, которая будет ошибку обрабатывать?
При этом интервал времени превышения ожидания - 10-200 микросекунд.

Или такие действия вообще как-то по другому обрабатывать надо?
mkotov вне форума Ответить с цитированием
Старый 17.07.2013, 14:55   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Читайте про select()
waleri вне форума Ответить с цитированием
Старый 18.07.2013, 14:39   #3
mkotov
Новичок
Джуниор
 
Регистрация: 17.07.2013
Сообщений: 2
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Читайте про select()
Спасибо. Буду читать.
mkotov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
буферизация изображения MYriad Общие вопросы C/C++ 0 23.05.2011 15:47
Буферизация файлов PUSHkiN C# (си шарп) 3 24.04.2011 15:55
буферизация Dimarik PHP 4 16.07.2010 19:22
Буферизация anton23 Win Api 0 07.10.2009 00:37
Двойная буферизация volod3000 Общие вопросы Delphi 4 27.03.2009 00:08