Выбор технологии для сервера TCP-соединений

Помогите определиться с технологией (а еще лучше — готовой библиотекой) для реализации сервера TCP-соединений. Количество одновременных соединений максимально большое, объем передаваемого трафика при этом минимальный. Обмен двунаправленный.

Проект — сервер сбора телеметрической информации с GSM-терминалов. Целевая платформа Linux. Язык не особенно важен, вероятнее всего С++, Java.
  • Вопрос задан
  • 4276 просмотров
Решения вопроса 1
Wedmer
@Wedmer
Самый быстрый старт дает libSockets, но могут быть проблемы с гибкостью.
Asio дает кроме самих сокетов инструмент сервисов, которые, если понять как они устроены, позволяют получать очень гибкие решения.
Ну и есть классика реализации на нативных сокетах без лишних обвязок.
libevent не пробовал.
Ну и не стоит забывать о Qt. Второй по скорости старт из вышеперечисленных.

Думаю, что в вашем случае Asio подходит больше всего, учитывая опыт разработки на нем.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 6
unSeen
@unSeen
Обратите свое внимание на libuv: github.com/joyent/libuv
Ответ написан
Комментировать
Ramires
@Ramires
Немного похожий вопрос. Там было много интересных ссылок.
Ответ написан
Комментировать
Stdit
@Stdit
К перечисленному добавлю, что многие хвалят nodejs в плане «огромное количество соединений» и скорости разработки. Я его тоже использовал в качетсве tcp-сервера в двух проектах, но они не особо наргужены, поэтому рекомендвоать однозначно пока рановато. Асинхронная архитектура ECMAScript вкупе с событийной моделью понравились. Скорость работы хорошая. Сборщик мусора пока что не подводил. Хотя могут быть и грабли. Например, я не нашел там поддержки TCP_KEEPCNT и других опций setsockopt.
Ответ написан
Комментировать
levap
@levap Автор вопроса
Спасибо всем за ответы! Буду теперь перелопачивать информацию. Помечу последний ответ как решение.
Ответ написан
Комментировать
@vGrabko99
html, css, js, php, golang, mysql
golang без всяких библиотек вам подойдёт. сервер на нём поднимаю за 5 минут (написал, скомпилил, запустил) так что дерзайте)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы