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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2013, 15:29   #1
oteccc
Пользователь
 
Регистрация: 13.11.2013
Сообщений: 37
По умолчанию Отправить картинку сокеты

Как отправить картинку через сокеты?
oteccc вне форума Ответить с цитированием
Старый 08.12.2013, 15:44   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Смотря какие. Через WinAPI используя функцию send(). Через компоненты используя их методы того компонента, который выберешь.
И нужно еще знать куда отправлять по какому протоколу. HTTP это одно, SMTP другое. FTP третье. А если что-то нестандартное то вообще двадцать пятое.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.12.2013, 22:03   #3
oteccc
Пользователь
 
Регистрация: 13.11.2013
Сообщений: 37
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Смотря какие. Через WinAPI используя функцию send(). Через компоненты используя их методы того компонента, который выберешь.
И нужно еще знать куда отправлять по какому протоколу. HTTP это одно, SMTP другое. FTP третье. А если что-то нестандартное то вообще двадцать пятое.
как это сделать с помощью serversicket и clientsocket?
oteccc вне форума Ответить с цитированием
Старый 08.12.2013, 22:24   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Допустим картинка находится в файле. Тогда
Код:
f:=TFileStream.Create('file.jpg',fmOpenRead);
clientsocket.Socket.SendStream(f);
f.free;
Это можно написать где угодно, если уверен что в этом месте при выполнении коннект уже установлен.
А сервер при приеме в OnClientRead пропиши
Код:
var buf:array[1..1000] of byte;i:integer; f:TFileStream;
begin
f:=TFileStream.Create('file.jpg',fmOpenRead);
repeat
 i:=Socket.ReceiveBuf(buf,Length(buf));
 if i<>-1 then
  f.write(buf,i);
until i=-1;
f.free;
end;
Это если я не ошибаюсь. Давно с ним не работал.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.12.2013, 22:47   #5
oteccc
Пользователь
 
Регистрация: 13.11.2013
Сообщений: 37
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Допустим картинка находится в файле. Тогда
Код:
f:=TFileStream.Create('file.jpg',fmOpenRead);
clientsocket.Socket.SendStream(f);
f.free;
Это можно написать где угодно, если уверен что в этом месте при выполнении коннект уже установлен.
А сервер при приеме в OnClientRead пропиши
Код:
var buf:array[1..1000] of byte;i:integer; f:TFileStream;
begin
f:=TFileStream.Create('file.jpg',fmOpenRead);
repeat
 i:=Socket.ReceiveBuf(buf,Length(buf));
 if i<>-1 then
  f.write(buf,i);
until i=-1;
f.free;
end;
Это если я не ошибаюсь. Давно с ним не работал.
[Error] Unit1.pas(43): Undeclared identifier: 'Lenght'
что за ошибка?
oteccc вне форума Ответить с цитированием
Старый 08.12.2013, 23:10   #6
oteccc
Пользователь
 
Регистрация: 13.11.2013
Сообщений: 37
По умолчанию

а нет все работает, я ошибся, спасибо помог
oteccc вне форума Ответить с цитированием
Старый 08.12.2013, 23:12   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Lenght и Length слова разные.
Не путай буквы.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.12.2013, 23:15   #8
oteccc
Пользователь
 
Регистрация: 13.11.2013
Сообщений: 37
По умолчанию

а как эту картинку в image1 вывести?
oteccc вне форума Ответить с цитированием
Старый 09.12.2013, 00:01   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Кажется есть возможность из стрима считать, но я не помню точно.
Зато Image.Picture.LoadFromFile существует.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.12.2013, 20:29   #10
oteccc
Пользователь
 
Регистрация: 13.11.2013
Сообщений: 37
По умолчанию

че то я не понял как на сервере ее принять?

Последний раз редактировалось oteccc; 09.12.2013 в 20:57.
oteccc вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Накладывать картинку на картинку любой формы back191 HTML и CSS 0 25.08.2012 19:36
Как отправить файл (картинку) в icqclient? lypyotr Помощь студентам 1 24.10.2011 02:53
Как получить картинку при наведении на другую картинку (ссылку) seeker1 JavaScript, Ajax 8 04.07.2010 19:42
Как программным способом отправить картинку по почте? Delphi7 Dalagardi Помощь студентам 2 10.05.2010 14:00
Сокеты SL1CK Общие вопросы C/C++ 8 05.10.2009 13:20