сетевую либу выбрать? Я уже попробывал пописать на Winsock2, написал простенький client->server. Хотелось бы щас попробывать написать какой-то легкий мессенджер и вопрос, какую библиотеку выбрать. Знаю только что еще есть boost.asio, но в инете писали что там придется абстрагировать
Бери userver
Проблема asio и beast в том, что они так себе абстракции и требуют огромного количества кода. Я предполагаю, что если ты их сразу возьмёшь - простенький чатик ты напишешь примерно никогда. Поэтому для клиента берёшь drogon, для сервера userver
Если посмотреть тривиальные примеры (например написанные ещё для C++03), то там не сложнее, чем работа с POSIX функциями.
Не ебите мозги человеку, пожалуйста. Пусть пишет на нормальных готовых библиотеках, а не на ассемблере
Есть польза от написания этого добра как на чистых сокетах так и на каких-то сетевых библиотеках. Пишешь на сокетах-изучаешь хорошо именно сами сокеты, без оберток . Пишешь на фреймворках-изучаешь фреймворки. Итого, как подход- Я бы сначала написал на голых сокетах, а затем переписал бы на фреймворк, уже в промышленном варианте
Я не понимаю в чем проблема. Там функции уровня "отправить TCP пакет", "получить TCP пакет" в разных вариантах вроде "ждать, пока не получим" или "попробовать получить из буфера".
Проблема в том, что HTTP запрос это не просто «отправить TCP пакет»
Согласен. Но там шла речь о чатиках для них http не нужен
Вы пропагандируете ужас
А что не так? HTTP для других целей предназначен. Это готовый протокол уровня приложений.
Согласен. Но нужно ещё кучу всего, всякие бд и прочее. Зачем страдать? Илья, тебе так наш усервер не нравится?
А ему точно нужно умение гонять TCP?
Так он вроде хотел
Очень нравится я целиком за него!
Короче, предлагаю опу выбросить плюсы и асио и пойти писать на посиксе и сишке
Если он хочет писать TCP и свои протоколы городить(гейдев), то как бы нафига ему готовый фраймворк для этого?
Нет ты за всех-то не надо впрягаться
ну он еполл абстрагирует (которого кстати в посиксе вообще нет), заметно проще (особенно для новичка)
Я как настоящий торговец оружием воюю сразу за все стороны и питаюсь страданиями сразу всех участников конфликта. Все должны страдать!
в POSIX надо делать select (eselect), epoll только в Linux работает
я бы grpc затащил в проект и радовался жизни. Историю можно вообще в sqlite хранить. Какие сокеты, подключил готовых решений и полетел
с точки зрения удобста использования селект не лучше чем еполл
Поддержка кучи баз данных и grpc есть в userver. По словам некоторых ЭТАЛОННАЯ
и в отличии некоторых велосипедов, подобные вещи часты в практике
Всё, всё... Мы вас услышали...
Обсуждают сегодня