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

2.1. Создание серверного приложения

Создать, серверное приложение, имеющее вид, представленный на рис. 1, которое должно выполнять следующие действия.

Рис.1

  • Задавать номер сокета, на котором сервер будет принимать запросы клиентов.

  • Переводить компонент TServerSocket в активное состояние.

  • Устанавливать соединение с клиентом.

  • Получать сообщения от любого клиента.

  • Выводить на экран полученные сообщения.

Для выполнения перечисленных действий и требований следует:

1) Создать проект.

2) Установить на форме компонент TServerSocket (страница Internet Палитры компонентов) и две командные кнопки - «Запустить сервер» и «Выход».

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

procedureTForm1.Button1Click(Sendеr: TObject);

begin

Server Socket1.Port :=3000; {Сокет сервера}

ServerSocket1.Active := True; {Перевод сервера в состояние ожидании

соединения}

end;.

4) Для события OnClientConnect компонента TServerSocket записать следующий программный код:

Procedure Tform1.ServerSocket1Client(Connect(Sender: TObject;

Socket: TCustomWinsocket);

begin

ShowMessage( Format ('Установлено соединение с: %s',

[Socket. RemoteAddress]));

end;.

5) Для события OnClientRead компонента TServerSocket записать следующий программный код:

procedure Tform1ServerSocket1C1ientRead(Sender: TObject; Socket: TCustomWinsocket);

Var s: String; begin

s := Socket.ReceiveText; {Записать в переменную S принятый от клиента код}

ShowMessage (‘Пo сообщение or клиента :'+s);

end;.

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

procedure Tform1.Button2Click( Sender: TObject);

begin

ServerSocket1.Active :=False;{Перевод cокега в пассивнное состояние}

ServerSocket l .Close; {Закрытие сoкета}

Form1.Close

end;.

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

Создать клиентское приложение, имеющее вид, представленный на рис. 2, которое должно выполнять следующие действия:

• задавать номер IP-адрес и номер сокета сервера;

  • устанавливать соединение с сервером;

  • передавать на сервер сообщение.

Рис. 2

Для выполнения перечисленных действий следует;

1) Создать проект.

2) Установить на форме компонент TClientSocket (страница Internet Палитры компонентов) и две командные кнопки - «Установить соединение» и «Передать сообщение».

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

procedure Tform1.ButtonICIick(Sender: TObject);

begin

ClientSocketl.Port:= 3000;

TlientSocketl .Address := '127.0.0.1';

ClientSocket1 .Active := True;

end;.

4) Для события OnClick кнопки «Передать сообщение» записать слещий программный код:

procedure Tform1.Bulton2Click(Sender: TObject);

begin

ClientSocket1.Soket.SendText(‘cale.exe’);

end;.

ДОПОЛНИТЕЛЬНОЕ ЗАДАНИЕ

1. Измените приложение таким образом, чтобы не только сервер, но и клиент выводил на экран сообщение в случае успешною соединения с сервером.

2. Установите клиентскую и серверную программы на разных компьютерах и попытайтесь передавать данные между ними.

3. Измените приложение таким образом, чтобы сервер мог выбирать любой номер сокета, а клиент- указывать IP-адрес и номер сокета сервера.

4. Измените приложение таким образом, чтобы клиент мог запускать любое приложение на сервере. Для этого можно использовать функцию

WinExec. Например, для события OnClientRead компонента TServerSocke можно записать следующий программный код:

procedure Tform1.ServerSocket1ClicntRead(Sender: '('Object;

Socket: TCustomWinsocket);

Var s: String;

PName: Array [1..79] of char;

ret: Integer;

begin

s := Socket.ReceiveText;

ret := WinExec(StrPCopy(@>PName, s), SW_RESTORE);

end;.

примечание

Если на закладке Internet нет компонентов ServerSocket и ClientSocket (в Delphi 7 и 6 он по умолчанию не устанавливается), то нужно их устано­вить. Для этого необходимо выполнить следующие действия;

  1. проверить, имеется ли в поддиректории bin директории, куда уста­новлен Delphi файл dclsocketsXX.bpl, где XX - номер версии Delphi. Если данного файла нет, следует найти на установочном диске Delphi файл dclsockeisXX. hpl и скопировать его в поддиректорию bin директории, куда установлен Delphi. В этой папке находятся вес bpl-файлы;

  2. после этого в Delphi нужно выбрать пункт Install Package в Сомponent. В открывшемся окне надо нажать кнопку Add, после чего появится стандартное окно открытия файла. Выберите файл dcIsocketsXX.bpl. После это можно закрывать все открытые окна кнопками ОК.

ЛИТЕРАТУРА

  1. Джонс Э.. Оланд Дж. Программирование в сетях Microsoft-Windows. Мастер-класс /Пер. с англ. M., Издательско-торговый дом «Русская редакция», 2002. 608 с.

  2. Дарахвелидзе П. Г., Марков Е. П. Разработка Web-служб средствами Delphi. СПб., БХВ-Петербург, 2003. 672 с. ,

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

  1. Как определить количество активных соединений на сервере?

  2. Объясните назначение основных событий компонента TClientSocket.

  3. Объясните назначение основных событий компонента TServerSocket.

  4. Как выполнить соединение клиента с сервером с помощью компонентов TServerSocket и TCIientSocket?

  5. Как перевести компонент TServerSocket в состояние ожидания со­единения с клиентом?

Занятие 12. Исследование работы сервера времени

В работе исследуются возможности использования компонентов Delphi для обеспечения работы в сети.

Цель работы; исследовать работу сервера времени Internet с помощью компонентов TClientSocket и TServerSocket.

Теоретические положения к занятию подробно рассмотрены в предыдущей работе.

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