Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 23.03.2013, 00:27
snr93 snr93 вне форума
Прохожий
 
Регистрация: 10.10.2012
Сообщения: 11
Репутация: 10
Восклицание TCPClient1. Проблема с передачей сообщений

Добрый вечер, я в 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.
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:01.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter