Delphirus - прграммирование на delphi
   Все о delphi Delphirus - прграммирование на delphi
blocks.gif
Навигация
 

Главная
Статьи
Базы данных
Графика
Защита
Интернет
Система
Тексты
Мультимедиа
Файлы
Формы и окна
Другое
Советы
Базы данных
Графика
Интернет
Мультимедиа
Система
Тексты
Файлы
Файлы
Исходники
Компоненты
Инфо
Поиск по сайту
Обратная связь
Самое популярное
Аккаунт
Карта сайта

 
 
 

Советы по delphi \ Интернет и сети \ Сокеты \ Как передать картинку по сети через ServerSocket

Как передать картинку по сети через ServerSocket

Да без проблем. Звиняйте, что на сях, но, тем не менее, на Борланд сях. Со стороны, откуда посылаем (у нас это клиент), пишем:

TFileStream* str = new TFileStream("M:MyFile.jpg",fmOpenRead); 
//ИЛИ, если мы работаем без сохранения (тогда не создается файл)
TMemoryStream* str = new TMemoryStream (); 
str->Position = 0; 
Image1->Picture->Bitmap->SaveToStream(str); 
//и, наконец, шлем на сервер битмап
str->Position = 0; 
ClientSocket1->Socket->SendStream(str); 

Обратите внимание, не забывайте перед каждой операцией с потоком устанавливать позицию в 0!!! Иначе получим не то, что хотелось бы Ну а со стороны приема (у нас это, соответственно, серверсокет), в событии приема пишем:

int ibLen = ServerSocket1->Socket->ReceiveLength(); 
char* buf= new char[ibLen+1]; 
TMemoryStream* str = new TMemoryStream(); 
str->Position = 0; 
ServerSocket1->Socket->ReceiveBuf((void*)buf,ibLen); 
str->WriteBuffer((void*)buf,ibLen); 
str->Position = 0; 
Image1->Picture->Bitmap->LoadFromStream(str); 
//или
str->SaveToFile("M:MyFile.jpg"); 

Ну и ессно, как говорит Bigbrother, сделал дело - вызови деструктор! То есть почистить за собой надо, не знаю как в Паскале, но в сях мне надо удалить str и buf.

Название: Как передать картинку по сети через ServerSocket
Дата публикации: 2004-09-08 (3476 Прочтено)

 
 

 

Page generation 0.030 seconds