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

OSCHINA-MIRROR/mirrors-iNet

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

Brynet

Библиотека для создания TCP сетевых приложений на C++ 11, работающая без заголовочных файлов и поддерживаемая на нескольких платформах.

996.icu LICENSE Platform

Статус сборки

build-and-test

Основные возможности

  • Библиотека без заголовочных файлов
  • Поддержка нескольких платформ (Linux | Windows | MacOS)
  • Высокая производительность и безопасность
  • Отсутствие зависимостей
  • Поддержка многопоточности
  • Поддержка SSL
  • Поддержка HTTP, HTTPS, WebSocket
  • Поддержка IPv6

Документация

Совместимость

  • Visual C++ 2013+ (32/64-bit)
  • GCC 4.8+ (32/64-bit)
  • Clang (Поддерживает C++ 11)

Макросы

  • BRYNET_VERSION
  • BRYNET_USE_OPENSSL

Примеры сборки

  1. cmake . -Dbrynet_BUILD_EXAMPLES=ON -Dbrynet_BUILD_TESTS=ON
  2. Если вы используете Windows, откройте brynet.sln и соберите проект. Если вы используете Linux или MacOS, выполните команду make.

Только установка

  1. cmake .
  2. sudo make install

Примеры использования

Бенчмарки

В локальной сети, используется CentOS 6.5 виртуальная машина (хостовая машина - Win10 i5)

  • PingPong Сервер и клиент используют по одному потоку, размер пакета — 4 КБ.

    PingPong

  • Broadcast

    Сервер использует два сетевых потока и один логический поток, клиент использует один сетевой (также обрабатывает логику) поток. Размер каждого пакета — 46 байт. Каждый пакет содержит идентификатор клиента. Сервер отправляет пакет всем клиентам при получении пакета от любого клиента. Клиент отправляет пакет при получении пакета от сервера и если идентификатор пакета равен идентификатору клиента. ! Broadcast* Аб HTTP(1 сетевой поток)

    Серверное имя хоста:        127.0.0.1
    Серверный порт:            9999
    Путь к документу:          /abc/de? a=1
    Длина документа:           25 байт
    Уровень параллелизма:      100
    Время выполнения тестов:   17.734 секунды
    Полных запросов:           500000
    Неудачных запросов:        0
    Всего передано:            41000000 байт
    Передано HTML:             12500000 байт
    Запросов в секунду:        28194.36 [#/сек] (среднее)
    Время на запрос:           3.547 [мс] (среднее)
    Время на запрос:           0.035 [мс] (среднее, по всем параллельным запросам)
    Скорость передачи:         2257.75 [Кбайт/сек] (получено)
    Время соединения (мс)
    мин  среднее[+/-sd] медиана   макс
    Соединение:        0    2   0.2      2       3
    Обработка:         1    2   0.3      2       7
    Ожидание:          0    1   0.4      1       6
    Общее:             2    4   0.2      4       7
    Процент запросов, выполненных за определенное время (мс)
    50%      4
    66%      4
    75%      4
    80%      4
    90%      4
    95%      4
    98%      4
    99%      4
    100%      7 (самый долгий запрос)
```Примеры
----------------------------
* [PingPongServer](https://github.com/IronsDu/dodo/blob/master/examples/PingPongServer.cpp)
* [PingPongClient](https://github.com/IronsDu/dodo/blob/master/examples/PingPongClient.cpp)
* [BroadCastServer](https://github.com/IronsDu/dodo/blob/master/examples/BroadCastServer.cpp)
* [BroadCastClient](https://github.com/IronsDu/dodo/blob/master/examples/BroadCastClient.cpp)
* [Http&Websocket Server](https://github.com/IronsDu/dodo/blob/master/examples/HttpServer.cpp)
* [HttpServerClient](https://github.com/IronsDu/dodo/blob/master/examples/HttpClient.cpp)
* [BenchWebsocket](https://github.com/IronsDu/dodo/blob/master/examples/BenchWebsocket.cpp) benchmark websocket client
* [PromiseReceive](https://github.com/IronsDu/dodo/blob/master/examples/PromiseReceive.cpp)com/IronsDu/brynet/blob/master/examples/PromiseReceive. cpp) использование стиля промисов для получения HTTP-ответа
* [WebSocketProxy](https://github. com/IronsDu/dodo/blob/master/examples/WebBinaryProxy. cpp) прокси-сервер между WebSocket-клиентом и сервером с двоичным протоколом
* для просмотра дополнительных примеров перейдите к [примерам](https://github. com/IronsDu/dodo/tree/master/examples);Пользователи
----------------------------
* [Redis proxy](https://github.com/IronsDu/DBProxy)
* [gayrpc](https://github.com/IronsDu/gayrpc)
* [gaylord - распределенная виртуальная фреймворк акторов](https://github.com/IronsDu/gaylord)
* [Joynet - Lua сеть библиотека](https://github.com/IronsDu/Joynet)
* [grpc-gateway](https://github.com/IronsDu/grpc-gateway)

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

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

Введение

iNet — это кроссплатформенные компоненты для разработки серверов, включающие: сетевую библиотеку, очередь сообщений, таймеры, RPC, библиотеку корутин. Развернуть Свернуть
MIT
Отмена

Обновления

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

Участники

все

Язык

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

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