![]() |
|
|
#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; |