![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Как передать картинку по сети через ServerSocketDelphi , Интернет и Сети , Сокеты
Автор: TwoK Да без проблем. Звиняйте, что на сях, но, тем не менее, на Борланд сях. Со стороны, откуда посылаем (у нас это клиент), пишем: 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 происходит на клиентской стороне с помощью TFileStream или TMemoryStream для отправки битмапа, а на серверной стороне с помощью ReceiveLength, ReceiveBuf и LoadFromStream для приема и загрузки изображения. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |