![]() |
|
|
#1
|
|||
|
|||
|
как с помощью IdTCPClient1 отправлять сообщения? напишите код плиз и объясните почему этот код построен так!
Все заранее большое спасибо. |
|
#2
|
||||
|
||||
|
Для начала нужно настроить IdTCPClient: Host - IP-адрес сервера, Port - целое число, кроме нуля (на сервере порт должен быть таким же, например 1234). Все эти свойства, конечно же, можно установить и программно. Подключаем клиент к серверу таким кодом:
Код:
IdTCPClient1.Host:=LabeledEdit1.Text; // IP-сервера IdTCPClient1.Connect; // подключение Код:
IdTCPClient1.Disconnect; Код:
procedure TClientMainForm.Image1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
If (Button=mbLeft) Then
IdTCPClient1.WriteLn('left_down')
Else If (Button=mbRight) Then
IdTCPClient1.WriteLn('right_down')
Else If (Button=mbMiddle) Then
IdTCPClient1.WriteLn('middle_down');
end;Код:
IdTCPServer1.Bindings.Add; // добавляет подключение IdTCPServer1.Bindings.Items[0].IP:=LabeledEdit1.Text; // IP-адрес клиента IdTCPServer1.Bindings.Items[0].Port:=1234; // порт клиента IdTCPServer1.Active:=True; // активизирует сервер Код:
IdTCPServer1.Active:=False; IdTCPServer1.Bindings.Delete(0); Код:
procedure TMainServerForm.IdTCPServer1Execute(AThread: TIdPeerThread);
Var
Str: String; // строка
Poz: TPoint; // позиция мышки
begin
With AThread.Connection Do
Begin
Str:=ReadLn;
// --------------Нажатие кнопок мыши------------------
If (Str='left_down') Then // проверяю сообщение клиента
Begin
GetCursorPos(Poz);
Mouse_event(MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_LEFTDOWN,
Poz.X, Poz.Y, 0, 0); // событие
End;
If (Str='right_down') Then
Begin
GetCursorPos(Poz);
Mouse_event(MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_RIGHTDOWN,
Poz.X, Poz.Y, 0, 0);
End;
If (Str='middle_down') Then
Begin
GetCursorPos(Poz);
Mouse_event(MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_MIDDLEDOWN,
Poz.X, Poz.Y, 0, 0);
End;
End;
end; |