Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> IdTCPServer1 IdTCPClient1 Картинки файлы 
:(
    Опции темы
VoAnt
  Дата 15.4.2004, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 9.4.2004
Где: Украина г. Киев

Репутация: нет
Всего: 2



Люди всё бьюсь над вопросом.. Помогайте.
Я пишу програмку обмена Картинками по локалке.... cool.gif Столкнулся с проьблемммой, вернее с задачей, решение которой не знаю...

Сетевая часть у меня на Indy!

На серверной части (IdTCPServer1) у меня происходит запихивание картинки в TBitmap, и сервак ожидает команды 'send'.
Как в обработчике команды (IdTCPServer1TIdCommandHandler0Command) переслать TBitmap? клиенту,
и что клиент лолжен принимать (Всмыле Буфер(IdTCPClient1.ReadBuffer()) или Лайн или ...)...

Помогите ПЛЗ!

Это сообщение отредактировал(а) VoAnt - 15.4.2004, 22:33
PM MAIL ICQ   Вверх
KIPISH
Дата 16.4.2004, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 4.4.2004

Репутация: нет
Всего: нет



Если я правильно понял то тебе это надо--> Пишу "Сервер": Кидаю на форму TIDTCPServer1 + TidAntiFReez и в событии OnExecute пишу эту шнягу..
Код

var
 S: String;
 F: TFileStream;

Const
 Path = 'c:\Porno\';
begin
 S := AThread.Connection.ReadLn;   //Получаем от клиента имя файла..
 F := TFileStream.Create(Path + S, fmOpenRead);    //Создаём поток данных...
 AThread.Connection.OpenWriteBuffer;   //Готовим буфер для записи...
 AThread.Connection.WriteStream(F);    //Передаём данные..
 AThread.Connection.CloseWriteBuffer; //Очищаем буфер нахер..
 AThread.Connection.Disconnect;          //no comments...
                                         end;
                                          end.


"Клиент": Кидаю TIDTCPClient1 + TidAntiFreez,TImage1,ComboBox1 и в Items заполняю именами файлов из каталога "c:\Porno\',(golie_siski.bmp и т.д), и один Батон c Caption(получить рисунок), и в событии Button1Click пишу:
Код

var
 F: TFileStream;
begin
 TIDTCPClient1.Connect;
 TIDTCPClient1.WriteLn(ComboBox1.Items[ComboBox1.ItemIndex]);   //Передаём запрос..
 F := TFileStream.Create( 'porno.bmp', fmCreate);      //Создаём поток данных..
 TIDTCPClient1.ReadStream(F, - 1, True);     //Читаем поток до конца соеденения...
 F.Free;         //no comments..
 Image1.Picture.LoadFromFile('porno.bmp');        //Показываем изображение...
 TIDTCPClient1.Disconnect;
 DeleteFile('porno.bmp');
                                  end;
                                   end.

PM MAIL   Вверх
VoAnt
Дата 16.4.2004, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 9.4.2004
Где: Украина г. Киев

Репутация: нет
Всего: 2



Тааак.... наблюдаются проблеммы... Я получаю данные не из файла...
Код


procedure TForm1.Button1Click(Sender: TObject);
var bmp : TBitmap
begin
 bmp := TBitmap.Create;
 try
   bmp.Width := Screen.Width;
   bmp.Height := Screen.Height;
   if BitBlt (bmp.Canvas.Handle, 0, 0, bmp.Width, bmp.Height, GetDC (GetDesktopWindow), 0, 0, SRCCOPY) then Image1.Picture.Bitmap.Assign (bmp) else
     ShowMessage ('Failed!');
 finally
   bmp.Free;
 end;


Как мне отправить по сети такую картинку? exclamation.gif
PM MAIL ICQ   Вверх
VoAnt
Дата 16.4.2004, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 9.4.2004
Где: Украина г. Киев

Репутация: нет
Всего: 2



Для файла код работает 100%
А вот для передачи TBitmap по сети в онлайне TStream чего-то глючит!!!
Но всё-равно спасибо!
PM MAIL ICQ   Вверх
KIPISH
Дата 16.4.2004, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 4.4.2004

Репутация: нет
Всего: нет



Слушай реализуй это лучше через TServerSocket и TClientSocket вот пример:
Сервер: на форме TServerSocket1 c Name(Server);
Код

procedure TForm.FormCreate();
begin
Server.Port := 199;  
Server.Active := True;
end;
procedure TForm.ServerClientRead();
var
Rt: STring;
Bmp: TBitmap;
begin
 Rt := Socket.ReceiveText;    //Команды клиента..
 If Rt = 'Foto' then begin   //Если команда = 'Foto' то..
  bmp.Width := Screen.Width;
  bmp.Height := Screen.Height;
  if BitBlt (bmp.Canvas.Handle, 0, 0, bmp.Width, bmp.Height, GetDC (GetDesktopWindow), 0, 0, SRCCOPY) then begin Bmp.SaveToFile('c:\Foto.bmp');
 Server.Socket.Connections[0].SendText('Foto#' + 'c:\Foto.bmp');    //Посылаем команду + сам рисунок..//
finally
DeleteFile('C:\Foto.bmp');  
Bmp.Free;
end;
end;
end.


Клиент: на форме TImage1,TClientSocket1 c Name(Client),TButton1 c Caption(Соеденится),TButton2 c Caption(Получить рисунок);
Код

procedure TForm.Button1Click();
begin
 Client.Host := 'Kipish';   //Имя в локалке..
 Client.Port := 199;    //Порт у сервака...
 Client.Active := True;
end;
procedure TForm.Button2Click();
begin
 Client.Socket.SendText('Foto');
end;
procedure TForm.ClientRead();
var
Rt: STring;
begin
If Copy(Rt, 0, Pos('#', Rt) = 'Foto' then begin
Delete(Rt, 1, Pos('#', Rt));
Image1.Picture.LoadFromFile(Rt);
ShowMessage('Рисунок получен');
end;
end;
end.


Помоему удобно и красиво..
PM MAIL   Вверх
KIPISH
Дата 16.4.2004, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 4.4.2004

Репутация: нет
Всего: нет



Чёт я загнался сначала загрузи рисунок в TMemoryStream а потом передавай...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0452 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.