Создание программы в 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