Создание программы в Delphi для передачи файлов по сети

Работа с сетевыми компонентами в Delphi на примере создания программы, позволяющей передавать файлы по сети с возможностью измерения скорости передачи, используя средства передачи потоков по сети. Пример работы программы при передаче и приеме файла.

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык русский
Дата добавления 20.09.2012
Размер файла 74,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

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

«Передача файлов по сети с помощью сокетов»

ЦЕЛЬ РАБОТЫ

Получить практические навыки работы с сетевыми компонентами в Delphi на примере создания программы, позволяющей передавать файлы по сети с возможностью измерения скорости передачи, используя средства передачи потоков по сети.

ИСХОДНЫЙ ТЕКСТ КЛИЕНТСКОЙ ПРОГРАММЫ

Ниже приведены процедуры, непосредственно участвующие в процессе передачи файлов.

procedure TForm1.Button1Click(Sender: TObject);

var s2:string;

begin

ServerSocket1.Port:=1666;

ServerSocket1.Open;

Button3.Enabled:=FALSE;

Label1.Caption:='Ожидание...';

s2:=s;

Delete(s2,1,Pos('<',s));

s2:=Copy(s,Pos('<',s)+1,length(s2)-2);

ClientSocket1.Socket.SendText('# '+s2+' Можно передавать файл...');

end;

procedure TForm1.Button3Click(Sender: TObject);

var

i: integer;

begin

ClientSocket2.Port:=1666;

ClientSocket2.Address:=Form2.Edit1.Text;

ClientSocket2.Open;

Button1.Enabled:=FALSE;

if OpenDialog1.Execute then

begin

FromFile:=TMemoryStream.Create;

StartTime:=GetTickCount();

try

FromFile.LoadFromFile(OpenDialog1.FileName);

FromFile.Position:=0;

for i:=Length(OpenDialog1.FileName) downto 1 do

begin

if OpenDialog1.FileName[i]='\' then

Break;

FileName:=Copy(OpenDialog1.FileName,i,Length(OpenDialog1.FileName));

end;

FromFileSize:=FromFile.Size;

ClientSocket2.Socket.SendText(IntToStr(FromFile.Size)+#0+FileName+#0);

ClientSocket2.Socket.SendStream(FromFile);

except

FromFile.Free;

end;

end;

end;

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;

Socket: TCustomWinSocket);

var

Msg: string;

ToFileName: string;

begin

Msg:=Socket.ReceiveText;

if Flag=FALSE then

begin

FileSize:=StrToInt(Copy(Msg,1,Pos(#0,Msg)-1));

Delete(Msg,1,Pos(#0,Msg));

ToFileName:=Copy(Msg,1,Pos(#0,Msg)-1);

Delete(Msg,1,Pos(#0,Msg));

SaveDialog1.FileName:=ToFileName;

ToFile:=TMemoryStream.Create;

Flag:=TRUE;

end;

try

ToFile.Write(Msg[1],Length(Msg));

if ToFile.Size=FileSize then

begin

ToFile.Position:=0;

if SaveDialog1.Execute then

begin

ToFile.SaveToFile(SaveDialog1.FileName);

Socket.SendText('time');

ListBox1.Items.Add('Файл получен!');

Label1.Caption:='';

Button1.Enabled:=false;

ServerSocket1.Close;

end;

ToFile.Free;

Flag:=FALSE;

end;

except

ToFile.Free;

end;

end;

procedure TForm1.ClientSocket2Connect(Sender: TObject;

Socket: TCustomWinSocket);

begin

Label1.Caption:='Отправка...';

end;

procedure TForm1.ClientSocket2Read(Sender: TObject;

Socket: TCustomWinSocket);

var

msg: string;

begin

msg:=Socket.ReceiveText;

if msg='time' then

begin

Button3.Enabled:=false;

Label1.Caption:='';

FinishTime:=GetTickCount();

if FromFileSize < 1000 then ListBox1.Items.Add('Файл передан. Скорость: '+IntToStr(Round((FromFileSize)/((FinishTime-StartTime+1)/1000)))+'b/c')

else ListBox1.Items.Add('Файл передан. Скорость: '+IntToStr(Round((FromFileSize/1024)/((FinishTime-StartTime+1)/1000)))+'Kb/c');

end;

end;

procedure TForm1.N7Click(Sender: TObject);

begin

if CheckBox1.Checked=true then

begin

ClientSocket1.Socket.SendText('# '+Edit3.Text+' Принять файл от <'+Nik+'>?');

ListBox1.Items.Add('Ожидание подтверждения приема файла...');

Edit3.Clear;

end

else ListBox1.Items.Add('Выберете получателя!');

end;

программа передача файл сеть

Таблица 1 - Описание использованных в клиентской программе подпрограмм

Процедуры

Описание

procedure TForm1.Button1Click(Sender: TObject);

Обработка нажатия кнопки «Принять файл». Открытие сокета сервером

procedure TForm1.Button3Click(Sender: TObject);

Обработка нажатия кнопки «Передать файл». Открытие сокета клиентом

procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);

Получение файла

procedure TForm1.ClientSocket2Connect(Sender: TObject; Socket: TCustomWinSocket);

Подключение клиента к серверу, на который будет передаваться файл

procedure TForm1.ClientSocket2Read(Sender: TObject; Socket: TCustomWinSocket);

Получено сообщение о том, что файл передан. Вывод скорости передачи

procedure TForm1.N7Click(Sender: TObject);

Обработка нажатия кнопки меню «Отправить файл». Клиенту посылается запрос на готовность принятия файла

Пример работы программы. При отправке файла от одного клиента другому необходимо выбрать ник получателя и нажать кнопку меню «Отправить файл». После чего нужно дождаться, когда получатель перейдет в режим приема файла. При этом будет получено сообщение о том, что файл можно передавать. Для того чтобы выбрать передаваемый файл, необходимо нажать кнопку «Передать файл». (Рис.1)

Когда клиент получает сообщение «Принять файл от <ник отправителя>?», для того чтобы принять файл нужно нажать соответствующую кнопку. После чего клиент перейдет в режим ожидания и как только файл будет передан, будет предложено сохранить файл. (Рис. 2)

Рисунок 1 - Пример работы программы при передаче файла

Рисунок 2 - Пример работы программы при приеме файла

Размещено на Allbest.ru


Подобные документы

  • Понятие информационной технологии. Обобщенная структура компьютерной сети. Разработка программы, позволяющей передавать звук по локальной сети и по глобальной сети Интернет в реальном времени. Создание собственной Интернет-радиостанции с помощью Delphi.

    курсовая работа [376,0 K], добавлен 02.07.2010

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

    курсовая работа [1,4 M], добавлен 11.01.2013

  • Принципы идентификации компьютеров в глобальной сети Internet. Алгоритм и листинг программы "Domain name, IP" для определения IP-адресов и доменных имен в сети института. Проектирование программного продукта в среде разработки Delphi для Windows.

    дипломная работа [586,5 K], добавлен 24.07.2014

  • Методика и основные этапы создания многофункциональной программы получения и отправки сообщений по локальной сети с помощью программного обеспечения Winpopup и Traypopup. Сравнительная характеристика встроенных протоколов и их функциональные особенности.

    дипломная работа [371,6 K], добавлен 19.06.2010

  • Анализ и практическая реализация использования администрирования и мониторинга сети на предприятии. Процесс создания карты сети в программе LANState. Сетевые программы для сисадминов, программы мониторинга сети. Описание локальной вычислительной сети.

    курсовая работа [3,6 M], добавлен 15.02.2017

  • Технология построения сетей передачи данных. Правила алгоритма CSMA/CD для передающей станции. Анализ существующей сети передачи данных предприятия "Минские тепловые сети". Построение сети на основе технологии Fast Ethernet для административного здания.

    дипломная работа [2,5 M], добавлен 15.02.2013

  • Создание в Delphi программы, позволяющей тестировать уровень знаний операционной системы Windows. Важнейшие свойства и события компонента MainMenu. Описание работы программы и ее фрагменты. Внешний вид исходной формы теста. Программа решения задачи.

    курсовая работа [2,8 M], добавлен 21.07.2013

  • Разработка программы обработки типизированных файлов с кодом на языке Object Pascal, с использованием компонентов Delphi для ввода и вывода данных. Разработка экранных форм и алгоритма программы. Описание программных модулей и инструкция оператору.

    курсовая работа [1,5 M], добавлен 08.02.2011

  • Составление программы. Среда Delphi - механизм, обеспечивающий эффективную работу программиста. Составление программы, которая выводит для выбираемой единицы измерения (километры в час, мили в час или узлы) значение скорости в других единицах измерения.

    курсовая работа [684,0 K], добавлен 04.02.2009

  • Анализ цели проектирования сети. Разработка топологической модели компьютерной сети. Тестирование коммутационного оборудования. Особенности клиентских устройств. Требования к покрытию и скорости передачи данных. Виды угроз безопасности беспроводных сетей.

    дипломная работа [3,3 M], добавлен 22.03.2017

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.