Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.01.2017, 12:46   #21
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

клиентов будет много без потоков не обойтись
там работало на потоках вроди
и если меняю на ReadLn не считывает
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 23.01.2017, 16:25   #22
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

А клиенты должны отключаться после получения нужной инфы?
Aliens_wolfs вне форума Ответить с цитированием
Старый 23.01.2017, 16:32   #23
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

нет у них тайм аут если долго не активны сесия закрывается
зы. есть скайп или аска
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 23.01.2017, 19:30   #24
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Скайп Aliens_Wolfs
Aliens_wolfs вне форума Ответить с цитированием
Старый 09.02.2017, 21:33   #25
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

вот так полностью функционирует
Код:
procedure TForm1.IdTCPServer1Execute(AContext: TIdContext);
var
  strm: TMemoryStream;
  data1: TIdBytes;
  TcpReqString, TcpResString: String;
begin
  Memo2.Lines.Add('TCP  Execute');

  if AContext.Connection.Connected then
  begin
    strm := TMemoryStream.Create;
    try
      if AContext.Connection.IOHandler.InputBuffer.Size > 0 then
      begin
        AContext.Connection.IOHandler.ReadStream(strm,
          AContext.Connection.IOHandler.InputBuffer.Size, false);
        strm.Position := 0;
        ReadTIdBytesFromStream(strm, data1, strm.Size);
        TcpReqString := BytesToStringRaw(data1);  // строка с запросом

        Memo1.Lines.Add(TcpReqString);
        Memo1.Lines.Add('============');

        TcpResString := Dialog.TcpResCreate(TcpReqString); // функция парса запроса и создания ответа

        Memo1.Lines.Add(TcpResString);
        Memo1.Lines.Add('-----------------------------------------------');

        AContext.Connection.IOHandler.WriteBufferOpen;
        AContext.Connection.IOHandler.Write(TcpResString);
        AContext.Connection.IOHandler.WriteBufferFlush;
        AContext.Connection.IOHandler.WriteBufferClear;
        AContext.Connection.IOHandler.WriteBufferClose;
      end;
    finally
      strm.Free;
    end;
  end
  else
    Sleep(10);
end;
критика приветствуется, может что нибудь можно улучьшить
VirusN13
ArtGrek вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прием и передача данных по COM порту PTyTb32 Компоненты Delphi 2 26.06.2015 22:12
Прием и передача данных в PCI_E устройство Andrei4 Помощь студентам 2 12.11.2010 18:33
Передача потока с использованием idtcpServer Lvenok Помощь студентам 0 24.03.2010 19:03
передача файла от idtcpclient к idtcpserver SeЯgey Работа с сетью в Delphi 1 13.05.2008 11:21