Реферат Курсовая Конспект
Описание протокола ТСР - раздел Информатика, Лекция 13.задание: Разработать Клиент-Серверную Систему Тест...
|
Лекция 13.Задание: Разработать клиент-серверную систему тестирования сети с протоколом ТCP при условии использования библиотеки WinSock, на языке программирования C++, составить алгоритмы работы.
Обобщенный алгоритм тестирования системы
Алгоритм тестирования имеет следующий вид:
Клиент формирует сообщение и посылает его серверу;
Сервер формирует ответ на приглашение и посылает его клиенту;
Клиент получает ответ и делает измерение времени операции;
Делаем 5 циклов повторов с измерением времени передачи.
Описание WinAPI - функций и компонентов Іndy 9 для протокола TCP
Для данного решения используются в качестве клиента и сервера такие компоненты библиотеки Indy9 :
- IdTCPServer1: TIdTCPServer1 - Indy TCP сервер.
- IdTCPClient1: IdTCPClient1 - Indy TCP клиент.
Также используются:
- QueryPerformanceCounter - функция чтения содержимого программного счетчика.
- QueryPerformanceFrequency - функция определения частоты работы счетчика.
Текст программы с пооператорними комментариями
Клиентская часть
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "ClientUnit.h"
#pragma package(smart _ init)
#pragma resource " *.dfm"
TForm1 *Form1;
void __fastcall TForm1::Button1Click(TObject *Sender)
{
LARGE _ INTEGER count1, count2, frequency;
float f;
QueryPerformanceFrequency(&frequency);//получение частоты
IdTCPClient1 ->BoundIP=Edit1 ->Text; // Установка параметров соединения, адрес сервера
IdTCPClient1 ->Connect(); // Соединяемся с сервером
QueryPerformanceCounter(&count1); // Чтение системого времени
IdTCPClient1 ->WriteLn(Edit2 ->Text);// Отсылка сообщения серверу
ListBox1 ->Items ->Add(IdTCPClient1 ->ReadLn());// ожидание на ответ сервера
QueryPerformanceCounter(&count2); // Чтение системного времени
f=(count2.QuadPart - count1.QuadPart)*1000000/frequency.QuadPart;
ListBox1 ->Items ->Add("Время запроса : "+FloatToStrF(f/1000, ffFixed, 5, 2) + " ms");
// Вычисление времени запроса
IdTCPClient1 ->Disconnect(); // Разрываем зєднання
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
ListBox1 ->Items ->SaveToFile(Form1 ->Caption+"Log.txt");//Сохранение логу соединения
}
//---------------------------------------------------------------------------
Серверная часть
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "ServerUnit.h"
//---------------------------------------------------------------------------
#pragma package(smart _ init)
#pragma resource " *.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Button1 ->Enabled=false;
Button2 ->Enabled=true;
IdTCPServer1 ->Active=true; //Сервер активен
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Button2 ->Enabled=false;
Button1 ->Enabled=true;
IdTCPServer1 ->Active=false; //Сервер не активен
}
//---------------------------------------------------------------------------
void __fastcall TForm1::IdTCPServer1Execute(TIdPeerThread *AThread)
{
ListBox1 ->Items ->Add(AThread ->Connection ->ReadLn());//Ожидаем запрос от клиента
AThread ->Connection ->WriteLn("Server OK"); // Выводим принятое сообщение
AThread ->Connection ->Disconnect(); // Разрываем связь
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
ListBox1 ->Items ->SaveToFile(Form1 ->Caption+"Log.txt");//Сохранение лога соединения
}
//---------------------------------------------------------------------------
III Практическая часть
1. Экранные результаты:
1.1 Выполняется запуск программы-сервера (рис. 1).
1.2 Кнопкой 1 выполняем запуск сервера (рис. 1).
Рис. 1. Программа-сервер
1.3 Выполняем запуск клиентской программы (рис. 2).
1.4 В поле адреса сервера (1) вводим IP- адрес серверу (рис. 2)
1.5 В поле для отправления данных - вводим сообщение (рис. 2).
1.6 Нажимаем кнопку 3, для отправления сообщения серверу (рис. 2).
Рис. 2. Программа-клиент
1.7 По получении сообщения сервер выводит его в поле лога 1 (рис. 3)
1.8 Нажатие кнопки 2 сохранение лога соединений сервера в файле (рис. 1).
1.9 В поле 5 выводится лог соединений клиента с сервером (рис. 2).
1.10 Кнопкой 4 храним лог соединений клиента с сервером в файле (рис. 2).
1.11 Нажатием кнопки 2, останавливаем работу сервера (рис. 3)
1.12 Завершаем работу клиента.
Рис. 3. Результаты работы программы сервера
2. Файлы - протоколы результатов :
Сервер:
Hello, Server
I connect U!
U connects Me)
We are connectors
LOL
Клиент:
Server OK
Время запроса : 0.78ms
Server OK
Время запроса : 0.96ms
Server OK
Время запроса : 1.12ms
Server OK
Время запроса : 0.63ms
Server OK
Время запроса : 1.08ms
– Конец работы –
Используемые теги: Описание, протокола, ТСР0.035
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Описание протокола ТСР
Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов