LINUX.ORG.RU

[lorgoogle] Клиент-серверная библиотека


0

1

Что нужно:
* Клиент формирует один или несколько запросов и посылает серверу.
* Сервер принимает запросы клиентов и отвечает либо сообщением об ошибке, либо сообщением о принятии запроса на обработку.
* Сервер обрабатывает запросы и по мере готовности результатов, отсылает данные отдельными записями (которые могут идти вперемежку от разных запросов, если клиент ждет результатов для нескольких запросов).
* Клиент получает частичные результаты (и что он дальше с ними делает, в рамках этого треда уже не важно).
* После полного выполнения запроса сервер посылает сообщение клеинту, что запрос выполнен, и новых результатов не будет.
* Клиент может отметить выполнение запроса, пока запрос находится в процессе выполнения.

Пересылаемые в результатах данные — записи вида ключ-значение, где ключ — пара чисел, а значение может быть типа: число, utf8-строка, произвольный массив байт. (Фактически, результатом является двумерная матрица, а пара чисел ключа — это координаты ячейки в ней. Результирующая матрица может быть разреженной.) Эти данные необходимо эффективно сериализовывать/десериализовывать. К эффективности пересылки и сериализации запросов специфических требований нет, т.к. запросы будут пересылаться относительно редко, по сравнению с пересылкой результатов.

Соединение клиента и сервера осуществляется через сокет TCP или локальный сокет Unix.

Язык реализации — Си.

Какие есть библиотеки, которые могут помочь в реализации сервера и интерфейсной библиотеки для клиента? Может есть что-то готовое под похожую задачу, чтобы можно было перепилить под свои нужды с минимальными затратами?

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.