Библиотека MultithreadedTCPServer


Назначение


Многопоточный TCP сервер предназначен для одновременной обработки нескольких подключений клиентов. В данной работе главное внимание было уделено интеграции возможностей многопоточного TCP сервера и сценарного языка OneScript. С той же целью в состав библиотеки включен TCP клиент.

Ставились следующие задачи:

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

  • .