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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.04.2022, 16:10   #1
Alloc
Пользователь
 
Регистрация: 12.10.2015
Сообщений: 11
По умолчанию 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;
буду благодарен за помощь и идеи
Alloc вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача строк через ClientSocket ServerSocket stranger1234 C++ Builder 2 28.05.2013 12:09
Передача фалов clientsocket,serversocket Pilyla Общие вопросы Delphi 0 02.05.2013 12:35
передача сообщений через serversocket и clientsocket virtuhay266 Помощь студентам 1 14.12.2011 22:54
ServerSocket и ClientSocket передача буфера Тутонхамон Работа с сетью в Delphi 5 15.04.2011 13:34
ClientSocket,ServerSocket передача данных Torvald Работа с сетью в Delphi 3 07.09.2009 03:59