Форум программистов, компьютерный форум, киберфорум
Delphi: Сети
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 1
Регистрация: 02.06.2015
Сообщений: 23
1

Indy TidTCPServer+TidTCPClient

05.06.2015, 21:07. Показов 850. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите пожалуйста как можно передать и принять поток TMemoryStreem от TidTCPServer-а к TidTCPClient-у в котором записан TBitMap

=Сервер=
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var
z: String;
ScreenBM: TBitMap; // под скриншот
ms: TMemoryStream;
begin
  with AThread.Connection do
 begin
   //Читаем что прислало нам клиентское приложение
   z := ReadLn;
   //Если это скриншот экрана, то отправляем
   if SameText(Copy(z, 1, 11), 'get_screen ') then
    begin
  ScreenBM:= TBitMap.Create; //ScreenPNG:=TPNGObject.Create;
  ScreenBM.Width:=105;  //Размер битмапа
  ScreenBM.Height:=105; //Размер битмапа
  //Создаем скриншот области экрана
  BitBlt( ScreenBM.Canvas.Handle, 0,0,105,105, GetDC(0), 200, 200, SRCCOPY );
  
  ms:= TMemoryStream.Create;
  ms.Position:=0;
  ScreenBM.SaveToStream(ms);
 
  ScreenBM.Free; //Чистим БитМап от скриншот
   ms.Position:=0;
  //ПЕРЕДАЕМ файл клиентскому приложению
    OpenWriteBuffer;
    WriteStream(ms,true,TRUE,ms.Size);
    CloseWriteBuffer;
 
    //Уничтожаем поток
    //FreeAndNil(ms);
    ms.Free;
    end;
  end;
end;
=Клиент=
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
procedure TForm1.Button2Click(Sender: TObject);
var
 s:TMemoryStream;
 Bitmap: TBitmap;
begin
 connect_to_server;                   //Подключаемся к серверу
 IdTCPClient1.WriteLn('get_screen '); //Посылаем серверу команду "get_screen "
 Disconnect_to_server;
 
 with IdTCPClient1 do
 begin
   //Создаем поток
   s := TMemoryStream.Create;
 
   //Пока есть соединение читаем данные
  while connected do
      begin
        s.Position:=0;
        ReadStream(s,-1,false);
      end;
   Bitmap := TBitmap.Create;
   s.Position:=0;
   Bitmap.LoadFromStream(s);
   //Уничтожаем поток
   s.Free;
   Image1.Picture:=nil;
 
   //Выводим полученный скриншот на экран
   try
    Image1.Picture.Bitmap.Assign(Bitmap);
   finally
    Bitmap.Free;
   end;
 end; //end - with
end;
P.S Если возможно легкий пример приёма и передачи потока (TMemoryStreem) c TBitmap-пом. Очень нужно
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.06.2015, 21:07
Ответы с готовыми решениями:

Компоненты TIdTCPServer и TIdTCPClient
Пробую использовать TIdTCPServer и TIdTCPClient задача соединиться и передать строчку. Всё...

INDY 10. Как клиенту TIdTCPClient определить что сервер рухнул?
Если сервер рухнул или "убит", или закрыт без отключения клиентов как можно на клиенте понять что...

TIdtcpserver
Хотел бы задать парочку вопросов,относительно этого компонента -Как запустить и сконфигурировать...

Как отправить команду с сервера на клиент с tidtcpserver?
Как отправить команду с сервера на конкретный клиент с tidtcpserver? Хочу узнать вариант и для 9...

0
05.06.2015, 21:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.06.2015, 21:07
Помогаю со студенческими работами здесь

TIdTCPServer & Client. Удаленное управление компьютером по локальной сети
Всем доброго времени суток. Нашел код программы в интернете, но при компиляции выходят ошибки, вот...

TIdTcpServer и TIdTcpClient
Как с помощью этих компонентов осуществить обмен Потоками (TMemoryStream). Пробовал несколько...

TIdTCPServer TiDTCPClient
создал прилажение клиента и сервера если сервер высалает сообщение в каком событии производить...

Как через TidTCPServer TidTCPClient отправить сообщение
Как через TidTCPServer TidTCPClient отправить сообщение клиенту от сервера???? Я просто понять...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru