![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Корректность алгоритма программы(сетевой тест) на сокетах
Sergl © (2007-11-21 07:54:00)Вопрос о корректности алгоритма программы(сетевой тест) с использованием сокетов:
Далее будет описана логика программы поэтапно:
ps. Все общение между клиентом и сервером с помощью sendtext`а
1к - 1этап клиента
1с - 1этап сервера
0с) включается сервер
0к) клиент присоединяется к серверу
1к) клиент посылает запрос(SQL запрос) серверу, и ждет ответа сервера
1с) сервер при получении SQL запроса определенного вида
разбирает/выполняет его как нужно и после отдает клиенту ID(первичный ключ) из таблицы.
2к) клиент получает с сервера ID, хранит его, приступает к самому тестированию, и после ответов на вопросы отдает результаты серверу в виде SQL запроса
2с) сервер разбирает/выполняет SQL запрос пришедший от клиента и отрубает его(естественно если запрос определенной формы)
Как видно структура проста... вовсе не используется блокировка, и возникает вопрос:
При подключении нескольких клиентов к серверу алгоритм программы корректен???
Сергей М. (2007-11-21 12:25:00) [1]
> отдает клиенту ID(первичный ключ) из таблицы.
> клиент получает с сервера ID
> Все общение между клиентом и сервером с помощью sendtext
Умнее ничего не придумал, кроме как гонять по сети целочисленное значение в текстом представлении ?)
Сергей М. (2007-11-21 12:22:00) [2]
> Как заблоблокировать сервер пока он работает содним клиентом
Сделать сервер однопоточным, а транспорт, им используемый, блокирующим.
> как заставить остальных клиентов ждать
Чем они провинились ?)
Ты когда в очереди в пивной ларек стоишь, тоже сочувстуешь бедному-несчастному продавцу ларька, который якобы не по своей воле допустил скопление народа у заветной "амбразуры" ?)
Slym (2007-11-21 10:16:00) [3]Sergl (21.11.07 9:08) [3]
а как delphi c этим поступает
дельфи поступает так как ему запрограммировали...
ты программист или где?
Sergl (21.11.07 10:04) [7]
TCriticalSection +F1
Sergl (2007-11-21 10:04:00) [4]Как заблоблокировать сервер пока он работает содним клиентом, т.е. как заставить остальных клиентов ждать пока сервер обработает предидущего клиента?
Sergl (2007-11-21 09:24:00) [5]
> Ты считаешь БД-сервер не может ничего системного добавить
> "от себя"? 8-)Может все таки задачу опишешь?
Я сделал как сделал. И переделывать желания пока нету.
Вопрос: что будет когда к серверу в одно и тоже время будут присылаться эти запросы... как он будет их выполнять? Может его стоит заблокировать до момента окончания выполнения задания от клиета?
Sergey13 (2007-11-21 09:18:00) [6]> [4] Sergl (21.11.07 09:09)
Ты считаешь БД- серверне может ничего системного добавить "от себя"? 8-)
Может все таки задачу опишешь?
Sergl (2007-11-21 09:09:00) [7]
> А смысл всего этого какой? Почему просто не работать с СУБД
> через SQL?
Серевер должен добавить системную инфу в этот запрос.
Sergl (2007-11-21 09:08:00) [8]Сервер выполняет SQL-зарпосы от клиента(ну и передает один раз), предварительно добавляя в эти запросы ip и сетевое имя.
Меня интересует что будет в таких случаях: когда к серверу в одно и тоже время будут присылаться эти запросы...
PS. я знаю, например, что web-сервера(например Apache) запускают отдельный процесс для каждого клиента из интернета... а как delphi c этим поступает???
Sergey13 (2007-11-21 09:05:00) [9]> [0] Sergl (21.11.07 07:54)
> Все общение между клиентом и сервером с помощью sendtext`а
А смысл всего этого какой? Почему просто не работать с СУБД через SQL?
Slym (2007-11-21 09:00:00) [10]как алгоритм коррелирует с подключением нескольких клиентов?
коректность "При подключении нескольких клиентов к серверу" следует искать в реализации множественного параллельного доступа к неразделяемому объекту