Delphi. Учимся на примерах
Шрифт:
Полный код модуля серверной программы представлен в листинге 16.1.
Листинг 16.1. Модуль серверной программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ScktComp;
type TForm1 = class(TForm)
ServerSocket1: TServerSocket;
procedure FormDestroy(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ServerSocketlClientRead(Sender: TObject; Socket: TCustomWinSocket);
procedure FormPaint(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormDestroy(Sender: TObject);
begin
ServerSocket1.Active:= False; //отключаем сервер
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ServerSocket1.Active:= True; //активизировать сервер
end;
procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
var
str, x, y: string; //полученный текст и координаты
//указателя по X и по Y
i, j: integer; //счетчики циклов
begin
//обнуляем координаты курсора
х := ' ';
у := ' ';
str:= Socket.ReceiveText; //полученный от клиента текст
for i:=1 to Length(str) do begin
if str[i] <> '_' then x:= x + str[i]; //координаты по х
if str[i] = '_' then Break; //разделитель между
//координатами указателя
end;
for j:= i+1 to Length(str) do у:= y+str[j]; //координаты по у
//устанавливаем новые координаты указателя
SetCursorPos(StrToInt(x), StrToInt(у));
end;
procedure TForm1.FormPaint(Sender: TObject);
begin
Form1.Hide;
end;
end.
Полный код модуля клиентской программы представлен в листинге 16.2.
Листинг 16.2. Модуль клиентской программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ScktComp, StdCtrls, ExtCtrls;
type TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Client: TClientSocket;
Timer1: TTimer;
port: TEdit;
ip: TEdit;
Label1: TLabel;
Label2: TLabel;
procedure Button2Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure ClientConnect(Sender: TObject; Socket: TCustomWinSocket);
procedure ClientDisconnect(Sender: TObject; Socket: TCustomWinSocket);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button2Click(Sender: TObject);
begin
Timer1.Enabled:= False;//выключаем таймер
Client.Close; //закрываем соединение
Client.Active:= False; //отключаемся от сервера
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
Client.Close; //закрываем соединение
Client.Active:=False; //отключаемся от сервера
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Client.Port:= StrToInt(port.Text); //считываем порт
Сlient.Address:= ip.text; //считываем ip-адрес сервера
Client.Active:= True; //соединяемся
Timer1.Enabled:= True; //включаем таймер
end;
procedure TForm1.Timer1Timer(Sender: TObject);
Поделиться:
Популярные книги
На границе империй. Том 9. Часть 2
15. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
Убивать чтобы жить 5
5. УЧЖ
Фантастика:
боевая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Тактик
2. Офицер
Фантастика:
альтернативная история
7.70
рейтинг книги
Тринадцатый VI
6. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Шайтан Иван
1. Шайтан Иван
Фантастика:
боевая фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Снега
Поэзия:
драматургия
5.00
рейтинг книги
Волкодав
1. Волкодав
Фантастика:
фэнтези
героическая фантастика
9.46
рейтинг книги
Газлайтер. Том 3
3. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Я все еще граф. Книга IX
9. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Развод в 45. От любви до ненависти
6. Развод
Любовные романы:
остросюжетные любовные романы
5.40
рейтинг книги
Analyste
Аналитик
Фантастика:
социально-философская фантастика
юмористическая фантастика
6.57
рейтинг книги
Тринадцатый XIII
13. Видящий смерть
Фантастика:
городское фэнтези
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Я все еще не царь. Книга XXVI
26. Дорогой барон!
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Древесный маг Орловского княжества
1. Орловское княжество
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00