Материал: Методические указания к практическим занятиям по дисциплине «Основы построения защищенных компьютерных сетей». Деревянко В.Н

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

2.Каким образом задаётся информация для построения заглушек на клиентской и на серверной сторонах использовании протокола RPC?

3.К какому уровню модели взаимосвязи открытых систем относится протокол RPC?

4.Из чего исходят при выборе нижележащих протоколов обмена для RPC? Назовите эти протоколы.

5.Каким образом серверная ОС получает информацию о наличии на сервере программы для обмена по протоко-

лу RPC?

14

Практическое занятие №4 Особенности разработки сетевых приложений

для UNIX/LINUX с применением компилятора Qt

Цель практического занятия Изучить и освоить разработку сетевых приложений

для UNIX/LINUX с применением компилятора Qt, получить практические навыки по разработке сетевых программ на языках С, С++.

Теоретические сведения

Qt — это библиотека классов C++ и набор инструментального программного обеспечения, предназначенных для построения многоплатформенных приложений с графическим интерфейсом. Qt представляет собой единую платформу для приложений, которые могут работать под управлением

Windows, Mac OS X, Linux, Solaris, HP-UX и других версий Unix.

Вариант известной программы «Hello World» для Qt имеет вид:

#include <qapplication.h> #include <qlabel.h>

//

int main (int argc, char** argv)

{

QApplication app(argc, argv);

QLabel lbl("Hello, World !", 0); app.setMainWidget (&lbl); lbl.show();

return app.exec();

}

15

Её можно набрать в любом текстовом редакторе. Компиляция и сборка программы выполняются за 3 шага.

1.

Создаётся файл проекта *.pro с помощью

утилиты qmake. Простой пример файла проекта:

 

SOURCES =

hello.cpp

 

HEADERS =

hello.h

 

CONFIG

+= qt warn_on release

 

TARGET

=

hello

Где SOURCES указывает на файл с исходным текстом программы. Если в проекте несколько таких файлов, то можно перечислить их так:

SOURCES = hello.cpp newone.cpp

или так:

SOURCES += hello.cpp SOURCES += newone.cpp

Аналогично, HEADERS содержит имена заголовочных файлов. CONFIG содержит информацию о конфигурации приложения. Файл проекта должен иметь то же имя, что и исполняемый файл приложения, здесь это hello.pro.

Утилита qmake запускается в каталоге, где содержатся файлы с исходными текстами, строкой типа

qmake -project -o hello.pro

2. Генерация файла makefile командой: qmake -o makefile hello.pro

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

3. Компиляция файлов и сборка программы make

Утилита make берёт параметры из файла makefile. Полученная программа, здесь hello запускается ко-

мандой ./hello

16

После тренировки по работе с приложениями для Qt,

находящимися в каталогах /home/Ex332_Probe/Hello, /home/Ex332_Probe/Dial изучите клиент-серверную программу в каталоге /home/Ex332_Probe/Network,

постройте её и запустите на выполнение.

Контрольные вопросы

1.Для каких платформ возможна разработка программ на языке С++ с применением компилятора Qt?

2.Каков порядок разработки и выполнения программ с применением компилятора Qt?

3.Назовите особенности структуры программ и проекта для компилятора Qt.

17

Домашнее задание №1 для подготовки к занятиям по разработке сетевого приложения

для Windows на С++

Цель задания Подготовиться к занятиям по разработке сетевого при-

ложения для Windows на языке С++

В этой работе мы создадим простую модель автомобиля на языке C++. Модель будет предоставлять следующие возможности.

1.Позволять пользователю создавать машину, присваивая ей имя и определяя максимальную скорость.

2.Обеспечивать, чтобы максимальная скорость не превышала 500 км/ч.

3.Отображать максимальную скорость и имя машины.

4.Ускорять машину с приращением 10 км/ч.

5.Определять, не сломался ли двигатель из-за чрезмерной скорости.

Просмотрите данные материалы, на практических занятиях они будут использоваться в качестве исходных данных.

Параметры машины содержатся в структуре CAR: struct CAR

{

 

char

petName[MAX_NAME_LENGTH];

int

maxSpeed;

int

currSpeed;

};

 

Будет создан класс с именем CCаr, объединяющий вместе глобальные функции и структуру CAR в единый структурный блок.

Готовое решение находится в каталоге … \Ch1\CarInCPP.

18

Источник: https://studfile.net/preview/16565401/