PIP 5.6.1
Platform-Independent Primitives
TCP клиент-сервер

Модуль ClientServer предоставляет TCP-сервер, принимающий соединения и управляющий объектами клиентов, и активный клиент, подключающийся к серверу. Всё в пространстве имён PIClientServer.

Сервер

PIClientServer::Server слушает адрес (например listenAll(port) на всех интерфейсах). Для каждого принятого соединения создаётся PIClientServer::ServerClient. Можно подменить тип клиента и обрабатывать жизненный цикл (данные, отключение). getMaxClients() / setMaxClients() ограничивают число одновременных соединений. listen(addr) — запуск, stopServer() — остановка, closeAll() — закрытие всех клиентов.

Серверный клиент

PIClientServer::ServerClient — серверное представление одного подключённого клиента. Объекты создаёт и владеет сервер. Переопределите aboutDelete() при необходимости очистки перед удалением. Отправка и приём данных — через базовый API (ClientBase).

Клиент

PIClientServer::Client — активный клиент: подключается к удалённому серверу (адрес/порт). После подключения используется тот же API отправки/приёма. Подключение, обмен, отключение.

Типичный сценарий

Сервер: создать Server, при необходимости задать лимит клиентов и обработчики, вызвать listen() или listenAll(port). Обрабатывать события клиентов в переопределениях или через хуки. Клиент: создать Client, подключиться к адресу сервера, обмен данными, отключиться.

Полный API: piclientserver_server.h, piclientserver_client.h, piclientserver_client_base.h.