Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
prakt-Storozhok.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
7.98 Mб
Скачать

2.2. Создание клиентского приложения

Создайте приложение, изображенное на рис. 2.

Рис. 2

Для создания клиентского приложения выполните следующие дейст­вия.

1) Создайте новое приложение и перенесите на форму компоненты, пе­речисленные в табл. 2.

2) Для события OnClick кнопки «Выбор файла» напишите следующий программный код:

procedure TForm1.Button1Click(Sender: TObject);

begin

If Open Dialog1.Execute then

Edit3.Text := OpenDialog1.FileName;

end;.

Представленный программный код записывает и окно Edit3 имя ло­кального файла. Этот файл будет передаваться на TFTP-сервер при вы­полнении операции записи на сервер. В него же будет считываться файл с TFTP-сервера при выполнении операции чтения.

Компонент

Класс

Описание

Edit1

TEdit

Окно ввода адреса TFТР-сервера

Edit2

TEdit

Окно ввода имени удаленного файла

Edit3

TEdit

Окно ввода имени локального файла

Label1

TLabel

Метка «Адрес ТFTP-сервера»

Label2

TLabel

Метка «Имя удаленного файла»

Label3

TLabel

Метка «Имя локального файла»

OpenDialog1

TOpenDialog

Компонент «Диалоговое окно выбора файла» (закладка Dialogs Палитры компонентов)

IdTrivialFTPS1

TIdTrivialFTP

TFTP-клиент (закладка Indy Clients Палитры компонентов)

Button1

TButton

Кнопка «Выбор файла»

Button2

TButton

Кнопка «Запись файла на сервер»

Button3

TButton

Кнопка «Чтение файла с сервера»

3)Для события OnClick кнопки «Запись файла на сервер» напишите следующий программный код:

procedure TForm1.Button2Click(Sender: TObject);

Var s: String;

begin

// Определение имени удаленного файла

S :=Edit2.Text:

// Если имя удаленного файла не введено,

// то файл будет записан на сервер под именем локального файла

If s=" then s :=ExtractFilename(Edit3.Text);

With IdTrivialFTP1 do

begin

// Определение имени или адреса сервера

Host:=Edit1.Text;

// Запись на сервер локального файла под новым именем

Put(Edit3.Text,s)

end;

end;.

4) Для события OnClick кнопки «Чтение файла с сервера» напишите следующий программный код:

procedure TForm1.Button3Click(Sender: TObject);

VAR

strm TFileStream;

s: String;

begin

// Определение имени локального файла

s := Edit3.Text;

//Если имя локального файла не введено,

// то файл будет записан на сервер под именем удаленного файла

If s=” then ExtractFilename(Edit2.Text);

strm:= TFileStream.Create(s, fmCreate);

With IdTrivialFTP1 do

try

// Определение имени или адреса сервера

Host:=Edit1.Text;

// Чтение удаленного файла с сервера

Get(Edit2.Text, strm);

Finally

strm.Free;

end;

end;.

5) Откомпилируйте созданное приложение.

6) Проверьте совместную работу серверного и клиентского приложе­ний.

ЛИТЕРАТУРА

Киммел П. Создание приложений в Delphi /Пер. с англ. М., Издательский дом «Вильямс», 2003. 640 с.

КОНТРОЛЬНЫЕ ВОПРОСЫ

1. Опишите алгоритм работы протокола TFTP.

2. Перечислите отличия протокола TFTP от протоколов SNTP и FTP.

3. С помощью какого метода TFTP-клиент передает данные на сервер?

4. С помощью какого метода TFTP-клиент запрашивает данные с сервера?

5. Как перевести TFTP-сервер в состояние ожидания запросов от клиентов?

6. Почему протокол TFTP не обеспечивает надежную передачу данных?

7. Какой номер порта по умолчанию использует протокол TFTP?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]