1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/youngwolf-st_asio_wrapper

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

st_asio_wrapper

Обзор

st_asio_wrapper — это асинхронный клиент-серверный фреймворк, основанный на Boost.Asio. Кроме всех преимуществ, предоставляемых Boost и Boost.Asio, он также включает следующее:

  1. Сообщение-ориентированная коммуникация, аналогичная UDP, со встроенными пакетизаторами и распаковщиками;
  2. Поддержка пользовательских пакетизаторов и распаковщиков с возможностью замены во время выполнения;
  3. Автоматическое переподключение к серверу после разрыва соединения;
  4. Поддержка пула объектов, повторного использования объектов и восстановления;
  5. Управление рабочими потоками;
  6. Поддержка буферизации сообщений;
  7. Широко используемые таймеры;
  8. Поддержка TCP/UDP и Unix домена TCP/UDP;
  9. Поддержка надежного UDP (на основе KCP — https://github.com/skywind3000/kcp);
  10. Поддержка SSL.

Быстрый старт

Серверная сторона:

Произведите производное от server_socket_base, вы должны хотя бы переопределить виртуальную функцию on_msg_handle и обрабатывать сообщения внутри неё; Создайте объект service_pump, создайте объект server_base<your_socket>, вызовите service_pump::start_service; Когда есть сообщения для отправки, вызывайте server_socket_base::send_msg или server_base::broadcast_msg.

Клиентская сторона:

Произведите производное от client_socket_base, вы должны хотя бы переопределить виртуальные функции on_msg или on_msg_handle и обрабатывать сообщения внутри них; Создайте объект service_pump, создайте объект multi_client_base<your_socket>, добавьте несколько сокетов через multi_client_base::add_socket, вызовите service_pump::start_service; Когда есть сообщения для отправки, вызывайте client_socket_base::send_msg или multi_client_base::broadcast_msg.Структура каталога:

  • Все исходные коды находятся в директории include. Другие директории содержат примеры программ, документация доступна по адресу проекта https://github.com/youngwolf-project/ascs/.

Демо:

echo_server:

Показывает, как создать TCP-серверы. Включает два сервера: первый — самый простой сервер (обычный сервер), который просто пересылает символы с клавиатуры всем клиентам (из демонстрации client) и принимает сообщения от всех клиентов (из демонстрации client), а затем выводит их; второй — эхо-сервер, который возвращает каждое получаемое сообщение от демонстрации echo_client.

client:

Показывает, как создать TCP-клиента. Просто отправляет символы с клавиатуры обычному серверу в демонстрации echo_server, принимает сообщения от обычного сервера в демонстрации echo_server, а затем выводит их.

echo_client:

Используется для тестирования производительности st_asio_wrapper (с использованием echo server).

file_server:

Сервер передачи файлов.

file_client:

Клиент передачи файлов, использует команду get <имя файла1> [имя файла2] [...] для получения файлов с сервера file_server.

udp_client:

Показывает, как создать UDP-коммуникацию.

ssl_test:

Показывает, как создать TCP-коммуникацию с шифрованием SSL.

Требования компилятора:

  • Нет специальных ограничений, просто требуется успешное скомпиляция Boost.Требования к Boost:

версия 1.49 или выше.

Электронная почта: mail2tao@163.com

Комьюнити на QQ: 198941541

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

На основе C/S-фреймворка boost.asio. Развернуть Свернуть
BSL-1.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/youngwolf-st_asio_wrapper.git
git@api.gitlife.ru:oschina-mirror/youngwolf-st_asio_wrapper.git
oschina-mirror
youngwolf-st_asio_wrapper
youngwolf-st_asio_wrapper
master