![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Есть ли смысл использовать IdTCPServer? [D5, Win95/98]
Vovanx © (2004-03-18 10:04:00)Задача:
есть машина препода(сервер) и ученика, на "преподе"
лежит задание в виде файла.
"ученик" запускает прогу, которая после запуска должна взять с "препода" задание, а после ответа вернуть лог серверу.
Вопрос:
Есть ли смысл использовать IdTCPServer и клиента этого же?
ил же можно обоитись без этого, и вообще как все это можно реализовать?
если можно дайте ссылочку на подобные примеры
Erik (2004-03-19 10:26:00) [1]Да немучийте вы человека. Напиши AppServer и клиента к нему. Demos\Midas\Empedit там все есть.
Reindeer Moss Eater (2004-03-18 12:48:00) [2]Проблема в организации канала данных, а не во времени
Канал данных уже организован добрыми дядями которые хорошо учились в школе.
Не твоя это забота.
vovanx (2004-03-18 12:12:00) [3]Проблема в организации канала данных, а не во времени, не суть важно какие данные я собираюсь качать по сети, суть в том как реализовать это
Anatoly Podgoretsky (2004-03-18 11:53:00) [4]WEB формы, все под контролем
Reindeer Moss Eater (2004-03-18 10:49:00) [5]Твой диалог клиента и сервера - это и есть сплошная проблема.
1. Что будет если клиент изменит свое локальное время ?
2. Как будет оцениваться ответ ученика, использующего "фичу" твоего сервера быть занятым во время приема ответа?
Я - двоечник.
Подходит время ответа, а я неготов.
Сервер допустим тоже неготов принять ответ.
А я его даю. Пустой.
Сервер не готов, и не принимает его. Но фиксирует, что я подходил к нему вовремя.
Выигранное время использую в корыстных целях для решения вопроса.
Подхожу второй раз - вуаля. Времени на ответ затрачено больше норматива, но как докажешь, что первый ответ был пустышкой?
Никак.
Твоя экзаменационная система - одна сплошная дыра.
vovanx (2004-03-18 10:39:00) [6]да проблема не со временем, а с тем как реализовать "диалог"
клиента и сервака, передачу данных и т.п.
почитал в книженции по сокетам про FTP, думаю принцип тотже, но проще реализация,вот только какими конкретно средствами?
Reindeer Moss Eater (2004-03-18 10:36:00) [7]ученик отвечает на вопросы теста, по ответам лог ведется, по истечении времени отведенного на тест или по завершению теста
клиент если надо опять коннектитя с серваком , говорит ему что хочет отослать лог, если серв готов, то шлет.
1. По чьим часам ведется лог ответов?
2. Если сервер был неготов принять ответ и ответ пришел с опозданием, как решается вопрос о затраченном на ответ времени ?
Verg (2004-03-18 10:29:00) [8]
> [7] S@shka © (18.03.04 10:23)
> Тока нет отслеживания кто подключился чего взял...
FindFirstChangeNotification спасут сервер от мрака...
vovanx (2004-03-18 10:29:00) [9]я вообщем-то про примерно вот что надумал, но с реализацией туго- опыта нет работы с сетью.
так вот
псразу после запуска клиента(ученич. части) он ищет серв в сети
(тоже не совсем понятно как реализовать, но пока не важно), соединяется с ним и просит у него Текущее задание(тест).
получив задание (2а файла бинарники) можно отконнектиться.
ученик отвечает на вопросы теста, по ответам лог ведется, по истечении времени отведенного на тест или по завершению теста
клиент если надо опять коннектитя с серваком , говорит ему что хочет отослать лог, если серв готов, то шлет.
в первом приближении..
а про баттоны, это интерфейс польз. (не моя головная боль)
Verg (2004-03-18 10:25:00) [10]По-простому через сетевые расшаренные ресурсы (папки), файловым обменом по сети безо всяких там сокетов и Индей.
TFileStream.Create('\\Prepod\tasks\task_student1.txt', fmOpenRead);
TFileStream.Create('\\Prepod\logs\log_task_student1.txt', fmCreate);
И все такое.
Reindeer Moss Eater (2004-03-18 10:25:00) [11]Тока нет отслеживания кто подключился чего взял...
А этого и не требовалось.
Reindeer Moss Eater (2004-03-18 10:24:00) [12]S@shka
Третью кнопку экономим на ручном редактировании файла ответа.
S@shka (2004-03-18 10:23:00) [13]Во-во либо так.
Тока нет отслеживания кто подключился чего взял...
Но вполне работоспособный
Reindeer Moss Eater (2004-03-18 10:22:00) [14]procedure TForm1.Button1Click(Sender: TObject);
begin
CopyFile(PChar('\\Prepod\Tasks\Task1.tsk'),PChar('MyTask.tck'),False);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
CopyFile(PChar('Мой ответ Чемберлену.ans'),PChar('\\Prepod\Answers\MyAnswer.ans'),False);
end;
S@shka (2004-03-18 10:19:00) [15]Конечно надо 3 TButton минимум:
1 - Взять пример
2 - Для ответа
3 - Положить лог
Ссылкк на примеры Delphi\Demos
=======================================
Тебе естественно надо использовать сетевые компонеты.
В частности можно Indy.
Реализовать то вроде б не сложно - но вот объяснить долго.
Так что ты уж сам придумай как это будет а потом конкретно спроси если что не понятно
vovanx (2004-03-18 10:19:00) [16]Причем тут сеть и TButton?
Reindeer Moss Eater (2004-03-18 10:17:00) [17]Ну да, TButton.
vovanx (2004-03-18 10:14:00) [18]всмысле TButton?
Reindeer Moss Eater (2004-03-18 10:12:00) [19]Я думаю можно обойтись без TidTCPServer.
Одной TButton хватит. Ну или двух TButton.