Dim писал(а):
Андрей писал(а):
При всем желании никто не сможет реализовать все эти модули одновременно. Все-равно они будут реализовываться по порядку и tcp - логичное начало.
Да и не надо их все сразу реализовывать. Это не причина выноса в модули. Достаточно начинать использовать протоколы по необходимости. Практически все функции можно реализовать используя только tcp. Остальные нужны только для повышения эффективности, когда уткнёмся в физические ограничения tcp.
Причина выноса в модули - потенциал для дальнейшего развития. Что-бы в будущем в систему можно было, например, быстро добавить поддержку FreeNet, I2P или других распределенных сетей.
Dim писал(а):
Андрей писал(а):
Транспортный модуль будет модулем в служебном сервисе (демоне).
Какие функции у демона?
Насколько я понимаю, демон будет заниматься тем, что нужно делать даже когда пользователь его не использует - транзитные пересылки, хранение части информации распределенной сети, ответы на запросы и т.д.
Dim писал(а):
Андрей писал(а):
Многие-ли проекты уже используют boost::asio?
Не задумывался даже. Просто boost используется для обкатки того, что впоследствии входит в стандартные библиотеки языка C++. Т.е. Ваш вопрос почти аналогичен "многие ли проекты используют std::string?"
Я к тому, что нужно выбирать хотя-бы немного опробованные инструменты. Заниматься их тестированием в контексте нашего проекта - это конечно неплохо для этих инструментов, но плохо для нашего проекта. Насколько я знаю, предложенная мною библиотека libevent уже используется в очень многих проектах. Что позволяет надеяться на ее качество.