Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: boost::asio - UDP Server Что, как, с чего начать?
Форум на CrossPlatform.RU > Библиотеки > boost
niXman
Есть задача: Множеству клиентов, раздавать один файл.
Предполагаю использовать boost::asio::ip::udp::socket.
Рассылаемый файл больше объема пакета. Файл будет разбиваться на блоки. Клиенты помимо UDP, подключаются по TCP для получения информации о файле: кол-во пакетов, ID пакетов, запрос определенного пакета.
Так же, нужно реализовать возможность, перехвата пакетов(которые являются частью одного и того же файла) передаваемыми для других программ клиентов, дабы снизить нагрузку на исходящий трафик программы Сервера.

С протоколом UDP не работал. Толком не представляю с чего начать.
По ходу общения буду задавать конкретные вопросы.
ViGOur
Не понятно зачем ты выбрал для передачи файла UDP протокол!?
Ведь, для того, что в конце концов быть уверенным в том, что ты получил весь файл тебе нужно будет писать свой протокол - обертку над UDP. :)
Думаю, что лучше всего в данном случае подходит именно TCP, так как только он гарантирует доставку и целостность данных, UDP же этого не гарантирует, потому он и быстрей.

Цитата(niXman @ 24.6.2008, 21:36) *
Так же, нужно реализовать возможность, перехвата пакетов(которые являются частью одного и того же файла) передаваемыми для других программ клиентов, дабы снизить нагрузку на исходящий трафик программы Сервера.
Может лучше сделать так, чтобы клиентские программы сами отправляли кому нужно эти даныые, например как в торенте?
void*
ViGOur, согласен, я хоть и не очень хорошо в этом разбираюсь, но тоже думаю что потоки лучше пакетной передачи данных. Например тем, что поточные сокеты (TCP) работают в обоих направлениях, и у них есть дополнительные механизмы против искажения и потери данных.
Еще глянь примеры из examples\network\
niXman
Цитата(ViGOur @ 25.6.2008, 9:13) *
Может лучше сделать так, чтобы клиентские программы сами отправляли кому нужно эти даныые, например как в торенте?

Я тоже так хотел. И библиотека для этого есть. Но, в ТЗ, это категорически запрещено!

void*, Уже смотрел. Единственная мысль, удовлетворяющая условие - Реализовать свой протокол на основе IGMP.
http://ru.wikipedia.org/wiki/IGMP
Cherry123
Цитата(niXman @ 25.6.2008, 13:20) *
Цитата(ViGOur @ 25.6.2008, 9:13) *
Может лучше сделать так, чтобы клиентские программы сами отправляли кому нужно эти даныые, например как в торенте?

Я тоже так хотел. И библиотека для этого есть. Но, в ТЗ, это категорически запрещено!

void*, Уже смотрел. Единственная мысль, удовлетворяющая условие - Реализовать свой протокол на основе IGMP.
http://ru.wikipedia.org/wiki/IGMP


Вопрос а автору: как дела, получилось что-нибудь с множественной рассылкой? Хотел отправить личное сообщение, но мне почему-то запрещено.
ViGOur
Цитата(Cherry123 @ 18.3.2009, 11:06) *
Хотел отправить личное сообщение, но мне почему-то запрещено.
Новичкам отправка личных сообщений запрещено. Борьба со спамом.
niXman
Cherry123, Кароче ЖОПА. ТЗ отправили на доработку. Походу, проект тупиковый )))
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.