Каковы способы обмена строковыми данными между клиентами и сервером в Delphi? - PullRequest
4 голосов
/ 13 ноября 2009

У меня есть сервер и несколько клиентов (около 50) в интрасети. Клиенты отправляют короткие (около 40 символов) строковые данные на сервер, а сервер отвечает аналогичной строкой. Существует до (но не постоянно) 2-3 запроса в секунду для каждого клиента. Сервер должен сериализовать запросы, чтобы получить строки ответа.

Система должна оказывать как можно меньшее влияние на сеть (т. Е. На сервере уже может работать что-то вроде веб-сервера). Он должен быть максимально простым в установке и администрировании.

Каковы возможности для достижения этой цели с помощью Delphi (клиент: D7, сервер до D2010)?

Ответы [ 5 ]

5 голосов
/ 13 ноября 2009

TCP, определенно. Но я бы хотел отдать голос за ICS . Никогда не любил Инди ...

5 голосов
/ 13 ноября 2009

Я использую библиотеку Synapse для такого простого сервера. Его молниеносно, очень легко и легко. Демонстрационная программа Echo в основной инсталляции synapse - это фантастическое начало того, что вы пытаетесь сделать. Если вы собираетесь осуществлять доступ к базе данных в каждом потоке запросов / ответов, я настоятельно рекомендую посмотреть на пример пула соединений Cary Jensen *, чтобы контролировать соединения с базой данных.

4 голосов
/ 13 ноября 2009

А как насчет Indy's TIdTCPServer и TIdTCPClient? Они предоставляют обработчики команд, что делает реализацию текстовых протоколов очень простой.

2 голосов
/ 13 ноября 2009

Есть много вариантов .

В конечном счете, я согласен с Smasher и люблю использовать сокеты. Они быстрые, легкие и портативные. Если вы имеете дело с довольно простым протоколом и не нуждаетесь в полном n-уровневом решении, создание серверного приложения TCP или HTTP очень просто, очень легко и легко совместимо с любым клиентом. Вы даже можете добавить поддержку SSL для этих автономных приложений, не настраивая веб-сервер или не вмешиваясь в него, если он уже работает на том же компьютере.

0 голосов
/ 17 ноября 2009

Я использую RemObjects SDK для такого рода целей. Он заботится обо всех сложных вещах, и я просто прошу его подключиться и выполнить вызовы функций для передачи данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...