![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Добрый вечер, я в Delphi новичок, так что сильно не пинать-)
Набросал вот такой вот код КЛИЕНТ Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, StdCtrls, IdAntiFreezeBase, IdAntiFreeze; type TForm1 = class(TForm) Edit1: TEdit; Button1: TButton; Button2: TButton; Button3: TButton; IdTCPClient1: TIdTCPClient; Edit2: TEdit; Label1: TLabel; Memo1: TMemo; IdAntiFreeze1: TIdAntiFreeze; procedure Button1Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin Memo1.Lines.Add('Подключение к '+Edit1.Text+'...'); idTCPClient1.Host:=Edit1.Text; idTCPClient1.Port:=9393; idTCPClient1.Connect(); if idTcpClient1.Connected then begin Memo1.Lines.Add('Подключился'); Button3.Visible:=True; end; end; procedure TForm1.Button3Click(Sender: TObject); var SO: String; begin if (idTCPClient1.Connected = true) and (Trim(Edit2.Text) <> '') then idTCPClient1.WriteLn(Edit2.Text); SO:= idTCPClient1.ReadLn(); Edit2.Text := ''; Memo1.Lines.Add(SO); end; procedure TForm1.Button2Click(Sender: TObject); begin Memo1.Lines.Add('Отключен от '+Edit1.Text+' ...'); idTCPClient1.Disconnect; Button3.Visible:=false; end; procedure TForm1.FormCreate(Sender: TObject); begin Button3.Visible:=False; end; end. СЕРВЕР Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, IdBaseComponent, IdComponent, IdTCPServer, IdAntiFreezeBase, IdAntiFreeze, IdIPWatch; type TForm1 = class(TForm) IdTCPServer1: TIdTCPServer; IdAntiFreeze1: TIdAntiFreeze; IdIPWatch1: TIdIPWatch; procedure IdTCPServer1Execute(AThread: TIdPeerThread); procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; ip: string; implementation {$R *.dfm} procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread); begin if Athread.Connection.ReadLn=('ping') then begin AThread.Connection.Writeln('ok'); end else if Athread.Connection.ReadLn=('cmd') then begin AThread.Connection.Writeln('Команда CMD выполнена'); end else begin if Athread.Connection.ReadLn=('msg') then begin AThread.Connection.Writeln('фраза показана'); ShowMessage('Сообщение'); end else begin if Athread.Connection.ReadLn=('ip') then ip:=IdIPWatch1.LocalIP; sleep(2000); AThread.Connection.Writeln('IP машины '+ip); end; end; end; procedure TForm1.FormCreate(Sender: TObject); begin idTCPServer1.Active:=True; end; procedure TForm1.FormDestroy(Sender: TObject); begin idTCPServer1.Active:=False; end; end. {Старая проблема, решена благодаря Alegun} Проблема в том, что когда я в edit2.text ввожу cmd, то сообщение "все ок" не показывается, но если я делаю так: Код:
procedure TForm1.Button3Click(Sender: TObject); begin idTCPClient1.WriteLn('cmd'); end; РЕШЕНИЕ Код:
procedure TForm1.Button3Click(Sender: TObject); begin idTCPClient1.WriteLn('Edit2.Text'); //Явно лишние кавычки, если только не название едита записывается. end; Последний раз редактировалось snr93, 23.03.2013 в 13:06. |