Delphi World - Использование ServerSocket и ClientSocket
Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Использование ServerSocket и ClientSocket

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

// Client Program: 
// Send 'power' to Client to shutdown the machine. 
// Send 'reset' to Client to reset the machine. 

unit Unit1;

 interface

 uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
   Dialogs, StdCtrls, ComCtrls, ScktComp;

 type
   TForm1 = class(TForm)
     Clientsocket1: TClientSocket;
     StatusBar1: TStatusBar;
     Button1: TButton;
     Button2: TButton;
     Edit1: TEdit;
     Label1: TLabel;
     Button3: TButton;
     CheckBox1: TCheckBox;
     Checkbox2: TCheckBox;
     procedure Button1Click(Sender : TObject);
     procedure Button2Click(Sender : TObject);
     procedure Clientsocket1Error(Sender : TObject; Socket : TCustomWinSocket;
       ErrorEvent : TErrorEvent; var ErrorCode : integer);
     procedure Clientsocket1Disconnect(Sender : TObject;
       Socket : TCustomWinSocket);
     procedure Clientsocket1Connect(Sender : TObject;
       Socket : TCustomWinSocket);
     procedure Button3Click(Sender : TObject);
     procedure FormClose(Sender : TObject; var Action : TCloseAction);
     procedure FormDestroy(Sender : TObject);
   private
     { Private declarations }
   public
     { Public declarations }
   end;

 var
   Form1 : TForm1;

 implementation

 {$R *.dfm}

 procedure TForm1.Button1Click(Sender : TObject);
 begin
   Clientsocket1.Active := True;
 end;

 procedure TForm1.Button2Click(Sender : TObject);
 begin
   Clientsocket1.Active := False;
 end;

 procedure TForm1.Clientsocket1Error(Sender : TObject;
   Socket : TCustomWinSocket; ErrorEvent : TErrorEvent;
   var ErrorCode : integer);
 begin
   errorcode := 0;
   StatusBar1.SimpleText := 'Error';
 end;

 procedure TForm1.Clientsocket1Disconnect(Sender : TObject;
   Socket : TCustomWinSocket);
 begin
   StatusBar1.SimpleText := 'Disconnect';
 end;

 procedure TForm1.Clientsocket1Connect(Sender : TObject;
   Socket : TCustomWinSocket);
 begin
   StatusBar1.SimpleText := Clientsocket1.Address;
 end;

 procedure TForm1.Button3Click(Sender : TObject);
 var
   ukaz : string;
   orders : string;
   Text : string;
   box : string;
 begin
   ukaz := edit1.Text;
   Clientsocket1.Socket.SendText(ukaz);
   if checkbox1.Checked = True then
   begin
     orders := 'power';
     Clientsocket1.Socket.SendText(orders);
   end;
   if Checkbox2.Checked = True then
   begin
     Text := 'reset';
     Clientsocket1.Socket.SendText(Text);
   end;
 end;

 procedure TForm1.FormClose(Sender : TObject; var Action : TCloseAction);
 begin
   Clientsocket1.Active := False;
 end;

 procedure TForm1.FormDestroy(Sender : TObject);
 begin
   Clientsocket1.Active := False;
 end;

 end.


 // Client Program 

unit Unit1;

 interface

 uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
   Dialogs, ScktComp, StdCtrls, ShellApi;

 type
   TForm1 = class(TForm)
     Label1: TLabel;
     Serversocket1: TServerSocket;
     procedure FormClose(Sender : TObject; var Action : TCloseAction);
     procedure FormDestroy(Sender : TObject);
     procedure FormCreate(Sender : TObject);
     procedure Serversocket1ClientError(Sender : TObject;
       Socket : TCustomWinSocket; ErrorEvent : TErrorEvent;
       var ErrorCode : integer);
     procedure Serversocket1ClientRead(Sender : TObject;
       Socket : TCustomWinSocket);
   private
     { Private declarations }
   public
     { Public declarations }
   end;

 var
   Form1 : TForm1;

 implementation

 {$R *.dfm}

 procedure TForm1.FormClose(Sender : TObject; var Action : TCloseAction);
 begin
   Serversocket1.Active := False;
 end;

 procedure TForm1.FormDestroy(Sender : TObject);
 begin
   Serversocket1.Active := False;
 end;

 procedure TForm1.FormCreate(Sender : TObject);
 begin
   Serversocket1.Active := True;
 end;

 procedure TForm1.Serversocket1ClientError(Sender : TObject;
   Socket : TCustomWinSocket; ErrorEvent : TErrorEvent;
   var ErrorCode : integer);
 begin
   errorcode := 0;
 end;

 procedure TForm1.Serversocket1ClientRead(Sender : TObject;
   Socket : TCustomWinSocket);
 var
   ukaz : string;
   orders : string;
   Text : string;
   box : string;
 begin
   ukaz := socket.ReceiveText;
   label1.Caption := 'reciving...';
   ShellExecute(Handle, 'open', PChar(ukaz), PChar(''), nil, sw_show);
   Text := socket.ReceiveText;
   orders := socket.ReceiveText;
   if orders = 'power' then
   begin
     ShellExecute(Handle, 'open', PChar('shutdown.exe'), PChar('-s'), nil, sw_show);
     Application.MessageBox('You will be turned off', 'Warning', mb_iconexclamation);
     Serversocket1.Active := False;
     Form1.Close;
   end;
   if Text = 'reset' then
   begin
     ShellExecute(Handle, 'open', PChar('shutdown.exe'), PChar('-r'), nil, sw_show);
     Application.MessageBox('You will be reset', 'Warning', mb_iconexclamation);
     Serversocket1.Active := False;
     Form1.Close;
   end;
 end;


 end.
Проект Delphi World © Выпуск 2002 - 2017
Автор проекта: Эксклюзивные курсы программирования