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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 14.04.2022, 16:52
Аватар для Alloc
Alloc Alloc вне форума
Начинающий
 
Регистрация: 17.09.2014
Сообщения: 104
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию ServerSocket и ClientSocket (передача файлов)

Всем привет!

Есть приложение Клиент-Сервер. Задача формировать отчеты на стороне клиента и далее отправка этого файла на сервер.

Я отправляю клиенту определенное сообщение, клиент принимает и отправляет сформированный отчет.

Код:
procedure TForm1.M1Click(Sender: TObject);
var
  MSG: string;
  SelectedItem, i: integer;
begin
  SelectedItem := StrToInt(ListView1.Items[ListView1.ItemIndex].SubItems[1]);

  if Form4.ShowModal = mrOK then
  begin
    MSG:= Form4.Edit1.Text;
    MSG:= StringReplace(MSG, '.', ' ', [rfReplaceAll, rfIgnoreCase]);

    for i := 0 to ServerSocket1.Socket.ActiveConnections - 1 do
    begin
      if ServerSocket1.Socket.Connections[i].Handle = SelectedItem then
      begin
        ServerSocket1.Socket.Connections[i].SendText('#report#=' + MSG);
        Break;
      end;
    end;
  end;

end;

По одиночке - все работает. Не могу придумать, что делать в случае если надо отправить эту команду для всех по очереди, при этом ждать пока скачается предыдущий файл...


как пример... но это не работает так как нужно..

Код:
procedure FileReceiveThread.Execute;
var
  MSG: string;
  i: integer;
  Count: integer;
begin
  if Form4.ShowModal = mrOK then
  begin
    MSG:= Form4.Edit1.Text;
    MSG:= StringReplace(MSG, '.', ' ', [rfReplaceAll, rfIgnoreCase]);

    Count:= Form1.ServerSocket1.Socket.ActiveConnections;

    for i := 0 to Count do
    begin
      if Form1.Gauge1.Progress = 0 then
      begin
        Form1.ServerSocket1.Socket.Connections[i].SendText('#report#=' + MSG);
      end else
      begin
        Sleep(5000);
      end;
    end;

  end;
end;

буду благодарен за помощь и идеи
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter