Система для удаленного запуска программного модуля

Автор работы: Пользователь скрыл имя, 04 Декабря 2013 в 23:12, курсовая работа

Описание работы

Данное приложение осуществляет реализацию удаленного запуска к программного модуля.
Приложение создано в инструментальной среде разработки приложений Delphi 7.0, реализующей современные подходы к программированию: объект- но-ориентированный подход и визуальные средства быстрой разработки приложений. Гипертекстовый документ разработан с использованием языка XHTML.

Файлы: 1 файл

ПЗ.doc

— 1.28 Мб (Скачать файл)

Программа должна работать в сети и осуществлять удаленный запуск программного модуля (сложение чисел). Эти возможности были реализованы в среде программирования Borland Delphi 7 с помощью Indy компонентов. Был разработан протокол взаимодействия хостов серверной и клиентской частей, который представлен в приложении В.

    1. Описание гипертекстового документа

В соответствие с заданием был разработан гипертекстовый документ, содержащий краткое описание разделов пояснительной записки. Для просмотра документа необходимо открыть в браузере файл Index.html

После открытия на экране появляется главная страница (Рисунок  Г.1). При нажатии на ссылку «Разделы записки» отобразится страница, содержащая титульный лист (Рисунок Г.2).

Перейдя по ссылке «Введение», пользователь увидит содержание пункта «Введение» пояснительной записки (Рисунок Г.З).

Для просмотра пункта «Техническое задание» следует нажать на ссылку «Техническое задание» (Рисунок  Г.4).

Для просмотра пункта «Описание модулей» следует нажать на ссылку «Описание модулей » (Рисунок Г.5).

При нажатии на ссылку «Описание приложения» отобразятся все подпункты пункта «Описание приложения» (Рисунок Г.6); для просмотра их содержания следует щелкнуть по ним кнопкой мыши.

При нажатии на ссылку «Описание гипертекстового документа» отобразятся все подпункты пункта «Описание гипертекстового документа» (Рисунок Г.7); для просмотра их содержания следует щелкнуть по ним кнопкой мыши.

Для просмотра пункта «Программа и методика испытаний» следует нажать на ссылку «Программа и методика испытаний» (Рисунок Г.8).

При нажатии на ссылку «Описание применения» отобразятся  все подпункты пункта «Описание применения» (Рисунок Г.9); для просмотра их содержания следует щелкнуть по ним кнопкой мыши.

Перейдя по ссылке «Заключение», пользователь увидит содержание пункта «Заключение» пояснительной записки (Рисунок Г.10).

    1. Входные и выходные данные

Входными данными являются запросы клиентов. Выходными данными  являются ответы сервера на запросы  клиентов.

 

Заключение

В результате проведенной  работы была разработана система  с сетевым интерфейсом для удаленного запуска программного модуля (сложение чисел), разработан алгоритм решения задачи, составлена и отлажена программа, оформлена документация на программу. Проведенные испытания показали, что программа работает правильно. Все требования технического задания выполнены полностью.

За время работы над  курсовым проектом был значительно  повышен уровень практических навыков программирования в среде Delphi, освоен процесс разработки клиент-серверных приложений с использованием Indy-компонентов.

В результате разработки приложения был создан Html-документ, содержащий следующие страницы: титульный лист, оглавление, все пункты пояснительной записки к курсовому проекту на тему «Система для удаленного запуска программных модулей» с использованием таблиц стилей и Java-скриптов.

 

 

 

 

 

 

 

 

 

 

 

Список использованных источников

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Приложение А

(обязательное)

Листинг программы 

 

unit Client;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, ComCtrls, ExtCtrls, IdBaseComponent, IdComponent,

  IdTCPConnection, IdTCPClient, IdTCPServer , IdStack;

type

  TfmClient = class(TForm)

    Panel1: TPanel;

    buConnect: TButton;

    buDiscnct: TButton;

    buSend: TButton;

    StatusBar1: TStatusBar;

    lbLog: TListBox;

    TcpClient: TIdTCPClient;

    edt1: TEdit;

    edt2: TEdit;

    lbl1: TLabel;

    procedure TcpClientDisconnected(Sender: TObject);

    procedure TcpClientConnected(Sender: TObject);

    procedure buSendClick(Sender: TObject);

    procedure buDiscnctClick(Sender: TObject);

    procedure buConnectClick(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  fmClient: TfmClient;

implementation

uses IdIOHandlerSocket;

var

Server:  String;

{$R *.dfm}

procedure TfmClient.buConnectClick(Sender: TObject);

begin

try

    if InputQuery('Имя компьютера или адрес','Адрес или имя:',Server) then

      if Length(Server) > 0 then

        with TcpClient do

        begin

          Connect;

        end;

     buConnect.Enabled := False;

     buDiscnct.Enabled := True;

   except

     on E: Exception do

       ShowMessage('Сервер не работает');

   end;

end;

procedure TfmClient.buDiscnctClick(Sender: TObject);

var

  LString: string;

begin

  try

    if TcpClient.Connected then

    begin

      TcpClient.WriteLn('QUIT');

      LString := TcpClient.ReadLn;

      lbLog.Items.Add('Сервер ответил -> ' + LString);

      TcpClient.Disconnect;

    end;

  except

    on E: Exception do

    TcpClient.Disconnect;

  end;

  buConnect.Enabled := True;

  buDiscnct.Enabled := False;

  StatusBar1.Panels[0].Text := '';

end;

procedure TfmClient.buSendClick(Sender: TObject);

var

  LString: string;

begin

  TcpClient.WriteLn('Text');

  TcpClient.WriteLn(edt1.Text);

  TcpClient.WriteLn(edt2.Text);

  LString := TcpClient.ReadLn;

  lbLog.Items.Add('Сервер ответил -> ' + LString);

end;

procedure TfmClient.TcpClientConnected(Sender: TObject);

var

  LString : String;

begin

  buSend.Enabled := True;

  lbLog.Clear;

  LString := TCPClient.ReadLn;

  lbLog.Items.Add('Соединен с сервером');

  lbLog.Items.Add('Сервер ответил -> ' + LString);

  StatusBar1.Panels[0].Text := 'Соединен с: '+TcpClient.Socket.Binding.PeerIP;

  LString := IntToStr(TcpClient.Socket.Binding.PeerPort);

  lbLog.Items.Add('Фактический номер порта '+LString);

end;

procedure TfmClient.TcpClientDisconnected(Sender: TObject);

begin

  lbLog.Items.Add('Отсоединен от сервера.');

end;

end.

 

unit Server;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, ExtCtrls, IdBaseComponent, IdComponent, IdTCPServer,

  ComCtrls, IdStack;

type

  TfmServer = class(TForm)

    Panel1: TPanel;

    buStart: TButton;

    buStop: TButton;

    StatusBar1: TStatusBar;

    lbLog: TListBox;

    TcpServer: TIdTCPServer;

    procedure TcpServerConnect(AThread: TIdPeerThread);

    procedure TcpServerchQuitCommand(ASender: TIdCommand);

    procedure TcpServerchTextCommand(ASender: TIdCommand);

    procedure buStopClick(Sender: TObject);

    procedure buStartClick(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  fmServer: TfmServer;

implementation

{$R *.dfm}

procedure TfmServer.buStartClick(Sender: TObject);

begin

buStop.Enabled := True;

  buStart.Enabled := False;

  TcpServer.Active := True;

  StatusBar1.Panels[0].Text := 'Слушаю...';

  lbLog.Items.Append('Сервер начал работать');

  lbLog.Items.Append('Имя хоста: '+TcpServer.LocalName);

  StatusBar1.Panels[1].Text := 'Имя хоста: '+TcpServer.LocalName;

  lbLog.Items.Append('Адрес сервера: '+GStack.LocalAddress);

  lbLog.Items.Append('Сервер использует номер порта '+IntToStr(TcpServer.DefaultPort));

end;

procedure TfmServer.buStopClick(Sender: TObject);

begin

TcpServer.Active := False;

  StatusBar1.Panels[0].Text := '';

  lbLog.Items.Append('Сервер остановлен');

  buStop.Enabled := False;

  buStart.Enabled := True;

end;

procedure TfmServer.TcpServerchQuitCommand(ASender: TIdCommand);

begin

lbLog.Items.Append('Клиент '+

      ASender.Thread.Connection.Socket.Binding.PeerIP+' отключился');

  ASender.Thread.Connection.WriteLn('До свидания!');

  ASender.Thread.Connection.Disconnect;

end;

procedure TfmServer.TcpServerchTextCommand(ASender: TIdCommand);

var

  Msg1,msg2: string;

  rez:Integer;

begin

  Msg1 := ASender.Thread.Connection.ReadLn();

  Msg2:= ASender.Thread.Connection.ReadLn();

  lbLog.Items.Add('Клиент с адресом:' +' '+ ASender.Thread.Connection.Socket.Binding.PeerIP+ ' запросил сложение: ' + Msg1 + '+' + msg2) ;

  rez:=StrToInt(Msg1)+StrToInt(msg2)  ;

  lbLog.Items.Add('Результат: ' + IntToStr(rez));

  ASender.Thread.Connection.WriteLn(IntToStr(rez));

end;

procedure TfmServer.TcpServerConnect(AThread: TIdPeerThread);

begin

lbLog.Items.Append('Подключился  клиент: '+

     AThread.Connection.Socket.Binding.PeerIP);

end;

end.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Приложение Б

(обязательное)

Экранные формы

 

 

Рисунок Б.1 Запуск сервера

 

Рисунок Б.2 Запуск клиента

 

 

 

 

 

 

 

 

Рисунок Б.3 Ввод IP-адреса

 

Рисунок Б.4 Подключение клиента (сервер)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рисунок Б.5 Подключение клиента (клиент)

 

Рисунок Б.6 Ввод чисел для сложения

 

 

 

 

 

 

 

 

 

 

Рисунок Б.7 Вычисление сервером результата сложения

 

Рисунок Б.8 Получение результата на клиенте

 

 

 

 

 

Рисунок Б.9 Отключение клиента  от сервера

 

Рисунок Б.10 Отключение клиента

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Приложение В

(обязательное)

Листинг гипертекстового документа

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />

<title>Пояснительная  записка</title> 

<link href="css/cssmain.css" rel="stylesheet" type="text/css" />

</head>

<body>

<div id="header">  

Гиппертекстовый документ к пояснительной записке на курсовое проектирование

</div>

<div class="content" >  

<img src="1.png" width="600" height="300" alt="Удаленный запуск" align="middle" border="0" />

</div> 

<div id="navAlpha">

<h3>Система для удаленного  запуска программных модулей</h3>

<h3>Выполнила ст-ка  гр. 09ВО1</h3>

<h3>Ситникова А.Р.</h3>

<a href="01.html">Разделы  записки</a>

</div>  

</body>

</html>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />

<title>Пояснительная  записка</title> 

<link href="css/cssmain.css" rel="stylesheet" type="text/css" />

</head>

<body>

<div id="header">  

Гиппертекстовый документ к пояснительной записке на курсовое проектирование

</div>

<div class="content" >

<div style="text-align: center;"> Пензенский&nbsp;Государственный&nbsp;Университет<br />Факультет вычислительной 

    техники<br />Кафедра &#171;Информационно-вычислительные системы&#187;<br /><br /><br /><br /><br /><br /><br /><br /><br />

<h3>&#171;СИСТЕМА ДЛЯ  УДАЛЕННОГО ЗАПУСКА ПРОГРАММНОГО  МОДУЛЯ</h3></div>

<p style="text-align: center;">Пояснительная  записка к курсовому проекту  по дисциплине<br />

     "Программирование в компьютерных сетях"</p>

  <div><p style="text-align: right;"><br /><br /><br /><br /><br /><br />Выполнила:

    студентка группы 09ВО1:<br />_______________Ситникова А.Р.<br />Проверил: преподаватель<br />________________

 Еременко А. В. </p> </div>

  <p style="text-align: center;"><br /><br />2013</p>

</div>

<div id="navAlpha">

<h2>Разделы записки</h2>

<a href="01.html">Титульный  лист</a><br />

<a href="02.html">Содержание</a><br />

<a href="03.html">Введение</a><br />

<a href="04.html">1.Техническое  задание</a><br />

<a href="05.html">2.Описание  модулей программы</a><br />

<a href="06.html">3.Описание  программы</a><br />

<a href="07.html">4.Описание  гипертекстового документа</a><br />

                <a href="08.html">5.Программа и методика испытаний

<a href="09.html">6.Описание  применения</a><br />

<a href="10.html">Заключение</a><br />

<a href="index.html">На  главную</a><br />

</div>  

</body>

</html>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />

<title>Техническое задание</title> 

<link href="css/cssmain.css" rel="stylesheet" type="text/css" />

<script type="text/javascript">

function Otvet(targetId)

{if (document.getElementById)

  {target = document.getElementById(targetId);

if (target.style.display == "none")

  { target.style.display = ""; } else

  { target.style.display = "none";  }}}

</script>

</head>

<body>

<div id="header">  

Гиппертекстовый документ к пояснительной записке на курсовое проектирование

</div>

<div class="content" >

<h1>Содержание</h1>

<h4> Введение<br />

<div onclick="Otvet('ot1')">1 Техническое задание<br />

<p id="ot1" style="display: none">

<i>1.1 Основание для  разработки<br /> 

    1.2 Назначение разработки<br />

1.3 Требования к приложению<br />

&nbsp;&nbsp;&nbsp;&nbsp;1.3.1 Требования к функциональным характеристикам<br />

&nbsp;&nbsp;&nbsp;&nbsp;1.3.2 Требования к надежности<br />

&nbsp;&nbsp;&nbsp;&nbsp;1.3.3 Требования к составу и параметрам  технических средств<br />

&nbsp;&nbsp;&nbsp;&nbsp;1.3.4 Требования к информационной и программной совместимости<br />

1.4  Требования к  программной документации<br />

1.5 Стадии и этапы  разработки<br />

1.6 Порядок контроля  и приемки<br />

</i></p></div>

<div onclick="Otvet('ot2')">2 Описание модулей программы

<p id="ot2" style="display: none">

<i>2.1 Основание для  разработки<br />

</i></p></div>

<div onclick="Otvet('ot3')">3 Описание приложения<br />

<p id="ot3" style="display: none">

<i>3.1 Общие сведения<br />

3.2 Функциональное назначение<br />

3.3 Описание логической структуры<br />

3.4 Используемые технические  средства<br />

3.5 Вызов и загрузка<br />

3.6 Входные данные<br />

3.7 Выходные данные<br />

</i></p></div>

Информация о работе Система для удаленного запуска программного модуля