Реферат Чат по сети
Работа добавлена на сайт bukvasha.net: 2015-10-28Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
![](https://bukvasha.net/assets/images/emoji__ok.png)
Предоплата всего
от 25%
![](https://bukvasha.net/assets/images/emoji__signature.png)
Подписываем
договор
Содержание
Задание 2
Листинг основной программы 3
Листинг программы “Мой комп” 8
Листинг программы “О памяти” 10
Листинг программы “Информация о ОС” 12
Листинг программы “Сохранить в файл” 15
Листинг программы “отправить по сети” 17
Результат работы программы 20
Вывод 21
Список используемой литературы 22
Задание
Написать программу, реализующую вывод сведений о компьютере, обмен информацией между пользователями по локальной сети и сохранением ее в файл.
Листинг основной программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdUDPServer, IdBaseComponent, IdComponent, IdUDPBase,
IdUDPClient, StdCtrls, Menus,IdSocketHandle, ImgList, ColorGrd;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Memo1: TMemo;
Label1: TLabel;
Button6: TButton;
Button7: TButton;
Memo2: TMemo;
IdUDPServer1: TIdUDPServer;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
procedure Button7Click(Sender: TObject);
procedure Memo2Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2, Unit3, Unit4,unit5,unit6;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
ms: TMemoryStatus;
begin
Form2.ShowModal;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Form3.ShowModal;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
Form4.ShowModal;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
form1.Memo1.Lines.AddStrings(form2.Memo1.Lines);
form1.Memo1.Lines.AddStrings(form3.Memo1.Lines);
form1.Memo1.Lines.AddStrings(form4.Memo1.Lines);
form1.Memo1.Lines.SaveToFile('memo.txt');
form1.Label1.Caption:='данные сохранены в файл memo.txt';
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
form5.ShowModal;
label1.Caption:=' ';
label1.Caption:='данные отправлены';
end;
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
var
StringFormatedStream:TStringStream;
s:string;
begin
StringFormatedStream:=TStringStream.Create('');
StringFormatedStream.CopyFrom(AData,AData.Size);
form1.Memo2.Lines.Add(StringFormatedStream.DataString);
ABinding.sendto(ABinding.PeerIP,ABinding.PeerPort,s[1],Length(s));
StringFormatedStream.Free;
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
memo2.Lines.SaveToFile('memo1.txt');
label1.Caption:=' ';
label1.Caption:='данные приняты';
end;
procedure TForm1.Memo2Change(Sender: TObject);
begin
label2.Caption:=' ';
label2.Caption:='получены данные';
end;
end.
Листинг программы “ Мой комп ”
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;
type
TForm2 = class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.FormCreate(Sender: TObject);
var
ms: TMemoryStatus;
begin
ms.dwLength := sizeof(ms);
GlobalMemoryStatus(ms);
form2.memo1.Lines.Add('Использовано памяти: '+IntToStr(ms.dwmemoryload)+'%');
form2.memo1.Lines.Add( 'Всего '+IntToStr(ms.dwtotalphys)+'байт');
form2.memo1.Lines.Add( 'Свободно '+IntToStr(ms.dwAvailPhys)+'байт');
end;
procedure TForm2.Button1Click(Sender: TObject);
begin
Close;
end;
end.
Листинг программы “ О памяти ”
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm2 = class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.FormCreate(Sender: TObject);
var
ms: TMemoryStatus;
begin
ms.dwLength := sizeof(ms);
GlobalMemoryStatus(ms);
form2.memo1.Lines.Add('Использовано памяти: '+IntToStr(ms.dwmemoryload)+'%');
form2.memo1.Lines.Add( 'Всего '+IntToStr(ms.dwtotalphys)+'байт');
form2.memo1.Lines.Add( 'Свободно '+IntToStr(ms.dwAvailPhys)+'байт');
end;
procedure TForm2.Button1Click(Sender: TObject);
begin
Close;
end;
end.
Листинг программы “Информация о ОС”
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm3 = class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
{$R *.dfm}
procedure TForm3.Button1Click(Sender: TObject);
begin
Close;
end;
procedure TForm3.FormCreate(Sender: TObject);
var
vi: TOSVersionInfo;
majver: byte;
minver: byte;
buildno: word;
plat: string;
s: array[0..MAX_PATH] of char;
begin
vi.dwOSVersionInfoSize := sizeof(vi);
GetVersionEx(vi);
majver := vi.dwMajorVersion;
minver := vi.dwMinorVersion;
buildno:= Loword(vi.dwBuildNumber);
form3.Memo1.Lines.Add( 'Версия ОС: '+IntToStr(majver)+'.'+IntToStr(minver)+
'build No '+IntToStr(buildno));
case vi.dwPlatformId of
VER_PLATFORM_WIN32s: plat := 'Win32s';
VER_PLATFORM_WIN32_WINDOWS: plat := 'Win95';
VER_PLATFORM_WIN32_NT: plat := 'WinNT'
else plat := 'Неизвестная платформа';
end;
form3.Memo1.Lines.Add('Платформа: '+plat);
GetWindowsDirectory(s,sizeof(s));
form3.Memo1.Lines.Add('Путь к папке; Windows: '+s);
GetSystemDirectory(s, sizeof(s));
form3.Memo1.Lines.Add('Путь к системной папке: '+s);
GetCurrentDirectory(sizeof(s),s);
form3.Memo1.Lines.Add('Путь к текущей папке: '+s);
end;
end.
Листинг программы “Сохранить в файл”
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, untSysInfo;
type
TForm4 = class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
{$R *.dfm}
procedure TForm4.Button1Click(Sender: TObject);
begin
Close;
end;
procedure TForm4.FormCreate(Sender: TObject);
var
si: TSystemInfo;
begin
GetSystemInfo(si);
form4.Memo1.Lines.Add('Тип процессора (level): '+IntToStr(si.wProcessorLevel));
form4.Memo1.Lines.Add( 'Частота процессора: '+FloatToStr(GetCPUSpeed)+' MHz');
form4.Memo1.Lines.Add('Имя компьютера '+GetComputerNetName);
form4.Memo1.Lines.Add( 'Имя пользователя: '+GetEnvironmentVariable('USERNAME'));
form4.Memo1.Lines.Add('MAC адрес '+GetMACAddress);
end;
end.
Листинг программы “отправить по сети”
unit Unit5;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdUDPBase, IdUDPClient;
type
TForm5 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
IdUDPClient1: TIdUDPClient;
Edit2: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Edit1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form5: TForm5;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm5.Button1Click(Sender: TObject);
begin
edit2.Text:=form1.memo1.Lines.CommaText;
idudpclient1.Send(edit2.Text);
end;
procedure TForm5.Button2Click(Sender: TObject);
begin
close;
end;
procedure TForm5.Edit1Change(Sender: TObject);
begin
idudpclient1.Host:=edit1.Text;
end;
end.
Результат работы программы
Вывод
Я на опыте изучил основы работы с локальной сетью по протоколу UDP и написал программу, реализующую вывод сведений о компьютере, обмен информацией между пользователями по локальной сети и сохранением ее в файл.
Список используемой литературы
1. Методическое пособие по вычислительным процессам
2. Delphi глазами программиста
3. Библия Delphi
4. Delphi для начинающих