Библиотека MultithreadedTCPServer
Назначение
Многопоточный TCP сервер предназначен для одновременной обработки нескольких подключений клиентов. В данной
работе главное внимание было уделено интеграции возможностей многопоточного TCP сервера и сценарного языка OneScript.
С той же целью в состав библиотеки включен TCP клиент.
Ставились следующие задачи:
Создать кроссплатформенный многопоточный TCP сервер для OneScript.
Создать TCP клиент для OneScript.
Сервер должен держать открытым соединение с клиентами до момента, пока или клиент,
или сервер не разорвут соединение. Это основное отличие от классической схемы подключение-запрос-ответ-разрыв соединения.
Количество одновременных подключений обрабатываемых без ощутимых задержек должно быть не менее 1500.
Обеспечить не блокирующий сценарий запуск как сервера, так и клиента.
Обеспечить обработку событий сервера и клиента в коде OneScript.
Предусмотреть возможность как массовой рассылки сообщений всем подключенным клиентам, так и отправки сообщения
отдельным клиентам по выбору.
Простая работа с пересылаемыми данными. Возможность в коде OneScript задавать протоколы передачи данных. Для этого
получаемые и передаваемые данные приведены к типу БуферДвоичныхДанных (BinaryDataBuffer). Этот тип позволяет легко манипулировать
байт данными, вставлять информацию о длине передаваемого отдельного сообщения, типе данных в сообщении.
При необходимости данные должны быть защищены криптографическим протоколом TLS (Transport Layer Security). TLS работает
поверх TCP, и сервер использует его для создания защищённого канала связи, который обеспечивает конфиденциальность,
целостность и подлинность соединения (аутентификацию).
.