Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #3  
Старый 30.11.2012, 04:41
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от dafttttttt
Делаю сейчас курсовую клиент - серверная программа для тестирования студентов. Обе части с трудом накидал. И вот преподаватель (не знавши о моих отдаленных навыках в области программирования) дал задание сделать в клиентской части форму ответов не сворачиваемую. А в серверной части подтверждение правильности введенных данных. Как он объяснил - учитель может отклонить подключившегося студента если тот ввел (кривые данные)

Даже нет мысли по этому поводу (как сделать).... Не подскажете?((
Когда-то давно писал я программу для класса обучения. Так как клиентские (ученические) компьютеры были там разношерстными, вплоть до самых дохленьких с установленными на них WinNT4 или Win98, то я чтобы сильно не заморачиваться реализовал общение сервера с клиентами самым по-моему простым способом - через обычные файлы. Насколько мне известно эта моя программа до сих пор работает в том компьютерном классе, по крайней мере примерно год назад они меня просили сделать небольшие изменения в программе.

Смысл примерно такой. Имеется две программы - серверная и клиентская и обе они лежат на сервере. Папка с клиентской программой расшарена только на чтение и именно с этой шары запускается на ученических компьютерах. Благодаря чему во-первых не нужно указывать имя сервера так как программа может его узнать из своей командной строки, а во-вторых гарантируется, что будет запущена оригинальная версия клиента (а не какая нибудь пропатченная ) - очевидно, что клиентская программа запущенная из другого места (например локально) не сможет подключиться к серверу, так как имени сервера не будет в командной строке запуска.
Ещё на сервере расшарена другая папка с полным доступом для общения сервера с клиентами. Когда клиентское приложение запускается, оно создаёт в этой папке файл с именем "ИмяКомпьютера.CLI", записывает в него своё состояние и изменяет расширение файла на ".SRV". Сервер же по таймеру (примерно 2 раза в секунду) просматривает эту папку на наличие файлов с расширением ".SRV", читает эти файлы обновляя информацию о клиентах в своём списке, потом записывает в этот файл команду клиенту и меняет расширение файла на ".CLI". В свою очередь клиент тоже по таймеру проверяет содержимое этой папки на наличие файла с именем "ИмяКомпьютера.CLI", если есть - читает из него команду сервера, выполняет её, записывает в этот файл своё состояние и опять изменяет расширение файла на ".SRV" и т.д. Когда сервер некоторое время не обнаруживает ответа от какого либо клиента (в виде файла с расширением ".SRV") то считается что связь с клиентом оборвана и сервер убирает этого клиента из своего списка.
Ответить с цитированием
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение:
~TB~ (30.11.2012)
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 04:20.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025