20985

ВЗАИМОДЕЙСТВИЕ ПРИКЛАДНЫХ ПРОГРАММ С ПОМОЩЬЮ ТРАНСПОРТНЫХ ПРОТОКОЛОВ СЕТИ ИНТЕРНЕТ

Лабораторная работа

Информатика, кибернетика и программирование

dfm AnsiString NIK_server; TForm1 Form1; __fastcall TForm1::TForm1TComponent Owner : TFormOwner { ServerSocket1 Active=true; Memo1 Clear; Memo2 Clear; } void __fastcall TForm1::ServerSocket1ClientConnectTObject Sender TCustomWinSocket Socket { Memo1 Lines Add Клиент присоединился ; } ...

Русский

2013-08-02

74 KB

8 чел.

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

УФИМСКИЙ ГОСУДАРСТВЕННЫЙ АВИАЦИОННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

ЛАБОРАТОРНАЯ РАБОТА №1

ПО ДИСЦИПЛИНЕ «СЕТИ ЭВМ»

ТЕМА РАБОТЫ «ВЗАИМОДЕЙСТВИЕ ПРИКЛАДНЫХ ПРОГРАММ С ПОМОЩЬЮ ТРАНСПОРТНЫХ ПРОТОКОЛОВ СЕТИ ИНТЕРНЕТ»

 

 

Выполнили

студент группы ИВТПО-431т

Рахмангулов А.М.

Салямов Д.И.

Проверила

Муслимова Г. Р.

Уфа 2011

ЦЕЛЬ РАБОТЫ:

Изучение принципов работы транспортных протоколов Интернет, разработка прикладных программ, осуществляющих взаимодействие между собой на основе этих протоколов.

ПОСТАНОВКА ЗАДАЧИ

Написать клиент-серверную программу, работающую по протоколу TCP  с аналогичными программами по указанному преподавателем порту и реализующую простейший chat с выбираемыми собеседниками. Протокол о совершаемых действиях должен выводиться на экран.

 

ОБОСНОВАНИЕ ВЫБОРА СРЕДЫ ПРОГРАММИРОВАНИЯ

Для разработки данного приложения был выбран язык Borland C++ Builder 6. C++ Builder позволяет быструю визуальную разработку приложений на языке C++. Профессиональные средства языка C++ интегрированы в визуальную среду разработки. Интегрированная среда разработки объединяет редактор форм, инспектор объектов, палитру компонент, администратор проекта и полностью интегрированные редактор кода и отладчик – инструменты быстрой разработки программных приложений, обеспечивающие полный контроль над кодом и ресурсами. C++Builder воплощает важнейшие аспекты объектно-ориентированного программирования в удобном для пользования инструменте визуального проектирования, что лучше всего подходит для реализации и отображения результатов работы программы.

РУКОВОДСТВО ПРОГРАММИСТА

Листинг сервера

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

AnsiString NIK_server;

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

       : TForm(Owner)

{

ServerSocket1->Active=true;

Memo1->Clear();

Memo2->Clear();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::ServerSocket1ClientConnect(TObject *Sender,

     TCustomWinSocket *Socket)

{

Memo1->Lines->Add("Клиент присоединился");

}

//---------------------------------------------------------------------------

void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender,

     TCustomWinSocket *Socket)

{

Memo1->Lines->Add(Socket->ReceiveText());

AnsiString S=Memo1->Lines->Text;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)

{

ServerSocket1->Socket->Connections[0]->SendText(Memo1->Text);

}

//---------------------------------------------------------------------------

void __fastcall TForm1::SpeedButton1Click(TObject *Sender)

{

NIK_server=Edit1->Text;

Memo1->Lines->Add(NIK_server+": "+Memo2->Text);

for(int i=0;i<=ServerSocket1->Socket->Connected;i++)

{

       ServerSocket1->Socket->Connections[i]->SendText(

        NIK_server+": "+Memo2->Lines->Strings[Memo2->Lines->Count - 1]);;

}

Memo2->Clear();

}

Листинг клиента

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

AnsiString Adress,NIK_client;

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

       : TForm(Owner)

{

Memo1->Clear();

Memo2->Clear();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

ClientSocket1->Active=true;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)

{

ClientSocket1->Socket->SendText(Memo1->Text);

}

//---------------------------------------------------------------------------

void __fastcall TForm1::ClientSocket1Connect(TObject *Sender,

     TCustomWinSocket *Socket)

{

Memo1->Lines->Add("Клиент присоединился к серверу");

}

//---------------------------------------------------------------------------

void __fastcall TForm1::ClientSocket1Read(TObject *Sender,

     TCustomWinSocket *Socket)

{

AnsiString Rtext ;

Rtext = ClientSocket1->Socket->ReceiveText() ;

Memo1->Lines->Add(Rtext);

}

//---------------------------------------------------------------------------

void __fastcall TForm1::SpeedButton1Click(TObject *Sender)

{

NIK_client=Edit2->Text;

Memo1->Lines->Add(NIK_client+": "+Memo2->Text);

ClientSocket1->Socket->SendText(NIK_client+": "+Memo2->Lines->Strings[Memo2->Lines->Count - 1]);

Memo2->Clear();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::SpeedButton2Click(TObject *Sender)

{

 if (Edit1->Text=="")

    {

       if (InputQuery("Соединиться...", "IP-адрес:", Adress));

       ClientSocket1->Address=Adress;

    }

 ClientSocket1->Address=Edit1->Text;

 ClientSocket1->Active=true;

 Edit1->Text=Adress;

}

РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ

Работа с клиентом

После запуска клиента введите ip адрес, ник, порт сервера в программе указан автоматически 2000.  В случае успешного соединения, вы увидите сообщение о том, что соединение удалось, клиент присоседился к серверу.

Работа с сервером

После запуска сервера введите ip адрес, ник, порт сервера в программе указан авмотически 2000. В процессе работы сервера вы можете наблюдать какими данными обмениваются клиенты с сервером.

Для прекращения работы сервера, закройте окно программы.