boost::asio - UDP Server Что, как, с чего начать?, Множеству клиентов, раздавать один файл. |
Здравствуйте, гость ( Вход | Регистрация )
boost::asio - UDP Server Что, как, с чего начать?, Множеству клиентов, раздавать один файл. |
niXman |
24.6.2008, 20:36
Сообщение
#1
|
Участник Группа: Участник Сообщений: 169 Регистрация: 18.6.2008 Пользователь №: 204 Спасибо сказали: 1 раз(а) Репутация: 0 |
Есть задача: Множеству клиентов, раздавать один файл.
Предполагаю использовать boost::asio::ip::udp::socket. Рассылаемый файл больше объема пакета. Файл будет разбиваться на блоки. Клиенты помимо UDP, подключаются по TCP для получения информации о файле: кол-во пакетов, ID пакетов, запрос определенного пакета. Так же, нужно реализовать возможность, перехвата пакетов(которые являются частью одного и того же файла) передаваемыми для других программ клиентов, дабы снизить нагрузку на исходящий трафик программы Сервера. С протоколом UDP не работал. Толком не представляю с чего начать. По ходу общения буду задавать конкретные вопросы. |
|
|
ViGOur |
25.6.2008, 8:13
Сообщение
#2
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Не понятно зачем ты выбрал для передачи файла UDP протокол!?
Ведь, для того, что в конце концов быть уверенным в том, что ты получил весь файл тебе нужно будет писать свой протокол - обертку над UDP. Думаю, что лучше всего в данном случае подходит именно TCP, так как только он гарантирует доставку и целостность данных, UDP же этого не гарантирует, потому он и быстрей. Так же, нужно реализовать возможность, перехвата пакетов(которые являются частью одного и того же файла) передаваемыми для других программ клиентов, дабы снизить нагрузку на исходящий трафик программы Сервера. Может лучше сделать так, чтобы клиентские программы сами отправляли кому нужно эти даныые, например как в торенте?
|
|
|
void* |
25.6.2008, 8:45
Сообщение
#3
|
Программист-самоучка Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: 3 |
ViGOur, согласен, я хоть и не очень хорошо в этом разбираюсь, но тоже думаю что потоки лучше пакетной передачи данных. Например тем, что поточные сокеты (TCP) работают в обоих направлениях, и у них есть дополнительные механизмы против искажения и потери данных.
Еще глянь примеры из examples\network\ Сообщение отредактировал void* - 25.6.2008, 8:54 |
|
|
niXman |
25.6.2008, 13:20
Сообщение
#4
|
Участник Группа: Участник Сообщений: 169 Регистрация: 18.6.2008 Пользователь №: 204 Спасибо сказали: 1 раз(а) Репутация: 0 |
Может лучше сделать так, чтобы клиентские программы сами отправляли кому нужно эти даныые, например как в торенте? Я тоже так хотел. И библиотека для этого есть. Но, в ТЗ, это категорически запрещено! void*, Уже смотрел. Единственная мысль, удовлетворяющая условие - Реализовать свой протокол на основе IGMP. http://ru.wikipedia.org/wiki/IGMP |
|
|
Cherry123 |
18.3.2009, 11:06
Сообщение
#5
|
Новичок Группа: Новичок Сообщений: 1 Регистрация: 18.3.2009 Пользователь №: 623 Спасибо сказали: 0 раз(а) Репутация: 0 |
Может лучше сделать так, чтобы клиентские программы сами отправляли кому нужно эти даныые, например как в торенте? Я тоже так хотел. И библиотека для этого есть. Но, в ТЗ, это категорически запрещено! void*, Уже смотрел. Единственная мысль, удовлетворяющая условие - Реализовать свой протокол на основе IGMP. http://ru.wikipedia.org/wiki/IGMP Вопрос а автору: как дела, получилось что-нибудь с множественной рассылкой? Хотел отправить личное сообщение, но мне почему-то запрещено. |
|
|
ViGOur |
18.3.2009, 11:30
Сообщение
#6
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
|
|
|
niXman |
12.4.2009, 13:39
Сообщение
#7
|
Участник Группа: Участник Сообщений: 169 Регистрация: 18.6.2008 Пользователь №: 204 Спасибо сказали: 1 раз(а) Репутация: 0 |
Cherry123, Кароче ЖОПА. ТЗ отправили на доработку. Походу, проект тупиковый )))
|
|
|
Текстовая версия | Сейчас: 25.11.2024, 21:10 |