Перейти к содержанию
Fire Monkey от А до Я
  • 0

IdTCPClient - приём сообщений от сервера


konstantin_27

Вопрос

Добрый день! Перерыл весь интернет, нашёл только пару ответов на мой вопрос да и то они не воплотимы на fire-monkey!
Вопрос у меня в следующем: "Как получать IdTCPClient-у ответы от сервера, в режиме реального времени". Т.е. мне нужно запустить приложение подключиться к серверу и получать от него сообщения. Делал чтение .ReadLn() - в таймере, приложение зависало и вскоре выдавало ошибку. 
Получилось сделать с помощью компонентов SocketClient в папке Internet, но этого компонента нет в fire-monkey. 
Помогите в решение этого вопроса, заранее спасибо!

Ссылка на комментарий

Рекомендуемые сообщения

  • 0

Попробуйте для начала проверить, есть-ли данные от сервера в буфере

if IdTCPClient1.IOHandler.InputBufferIsEmpty=false then begin
  {тут считываете и обрабатываете данные}
end;
Ссылка на комментарий
  • 0

Тема на форуме уже обсуждалась.

Конструктивный ответ. Ну значит подскажите человеку как пользоваться поиском, либо киньте ссылку на обсуждение данной темы. А так зачем писать сухие отписки?!

Ссылка на комментарий
  • 0

Попробуй использовать TThread

unit uMyThread;
 
interface
 
uses
  System.Classes, IdGlobal, FMX.Dialogs, System.SysUtils,
  System.Variants, System.UITypes;
 
type
  MyThread = class(TThread)
  private
    ReciveMSG: String;
//    I: Integer;
    { Private declarations }
  protected
    procedure Execute; override;
    Procedure ShowMessage;
  end;
 
implementation
 
{ MyThread }
 
procedure MyThread.Execute;
begin
  { Place thread code here }
  while not Terminated do
  begin
    try
      ShowMessage := IdTCPClient1.IOHandler.ReadLn(IndyTextEncoding_UTF8);
    except
      Begin
        Exit;
      End;
    end;
    if ReciveMSG <> '' then
      Synchronize(ShowMessage);
  end;
end;
 
procedure MyThread.ShowMessage;
begin
  inherited;
  //ваш код
end;
 
end.
Изменено пользователем Martifan
Ссылка на комментарий
  • 0

 

Тема на форуме уже обсуждалась.

Конструктивный ответ. Ну значит подскажите человеку как пользоваться поиском, либо киньте ссылку на обсуждение данной темы. А так зачем писать сухие отписки?!

 

Этот форум не помойка и тем не так уж много, так что найти можно что угодно, зная что ответ на этом форуме есть. Если теперь и я и ТС знаем что ответ на этом форуме есть, почему бы не поискать заинтересованному лицу, а не мне? Тут кстати уже довольно нередко стали дублировать темы/вопросы, для каждого пользоваться поиском вместо него? Это все равно что вместо того что бы помочь в конкретной ситуации, написать приложение за человека, зато помог, да...

Вбил в поиск форума "TIdTCPClient" и вот ответ.

Изменено пользователем xenon54
Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...