Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.13;
Скачать: CL | DM;

Вниз

Передача картинок по Socket у   Найти похожие ветки 

 
ArchValentin ©   (2005-01-02 07:41) [0]

С наступившем всех. Подскажите pls, у мя такая проблема. Есть клиент и сервер, сязанные на Socket"ах (ClientSocket, ServerSocket), на клиенте, в image есть некий рисунок, как передать этот рисунок на сервер, и, естественно, загрузить его в image на сервере??? Извиняйте за корявое объяснение, 2-ое как никак :)))


 
XProger ©   (2005-01-02 08:54) [1]

Читаем файл-картинку в буфер. Делим его на некоторые чати (к примеру не более 1024 байт) нумеруем их (смотря какой протокол). И поочерёдно отправляем. Перед отправкой посылаем серверу количество этих самых фоагментов, ну и имя самого файла.
По мере получения сервер упорядочивает эти блоки по порядковому номеру. После получения всех - сохранит их в отдельный файл, с именем, которое ему прислал клиент перед отправкой.

Вроде всё...


 
Polevi ©   (2005-01-02 11:48) [2]

TCP протокол сам позаботисся о порядке.. не надо ничего нумеровать и упорядочивать


 
ArchValentin ©   (2005-01-02 14:13) [3]

...я почти всё понял, а на конкретном примере вас не затруднит... :(((


 
VMcL ©   (2005-01-02 15:15) [4]

>>ArchValentin ©  (02.01.05 14:13) [3]

http://vmcl.igp.org.ua/?id=view_article&aid=2
Статья ещё не дописана до конца, но демо-пример рабочий.. вроде :-)

>>Polevi ©  (02.01.05 11:48) [2]

OFFTOPIC: Если не трудно и есть время, оцените, plz, правильность демо-примера из вышеуказанной статьи.


 
Eraszer   (2005-01-02 20:08) [5]

Используй Indy!!!


 
Piter ©   (2005-01-02 21:49) [6]

VMcL ©   (02.01.05 15:15) [4]

а для какого сайта ты статью пишешь?


 
Eraser ©   (2005-01-03 23:22) [7]

Ну прочитал статью. Мягко выражаясь, чтобы не обидеть автора, она - пример того, как не надо программировать!!! Если вы решили самостоятельно организовывать передачу данных НАСТОЯТЕЛЬНО рекомендуется использовать чистый API. А эти компоненты  (ClientSocket, ServerSocket) это породия на сокеты ))
Вообще советую использовать Indy, сейчас уже 10 версия вышла. Там передача файла или потока осуществляется в 1 строку (и приём тоже )), также обеспечивается многопоточность сервера, что необходимо почти для любого приложения, хотя её организация на API- не самая простая задача, на ClientSocket, ServerSocket- это вообще выглядет изващением!!!
Так что Indy- forever!
PS удачи ))


 
VMcL ©   (2005-01-03 23:29) [8]

>>Piter ©  (02.01.05 21:49) [6]

Для того, на котором она, собственно, размещена :-)


 
ArchValentin ©   (2005-01-04 06:28) [9]


> Так что Indy- forever!

а может исходничком подилишься, али примерчиком маленьким??? буду очень благодарен.


 
ArchValentin ©   (2005-01-04 19:10) [10]

короче решил свою проблему, спасибо VMcL за функции GetScreenshotJpe и GetScreenshotBitmap, и Horrific"у за классный пример пересылки файлов по сетке...


 
Eraser ©   (2005-01-05 01:32) [11]

->а может исходничком подилишься, али примерчиком маленьким??? буду очень благодарен.

пример из головы, так что извеняй, если что не так, а вообще заходи на сайт http://www.indyproject.org/ там заодно и последнюю версию Indy (сейчас уже 10) качни и примерчика.
Пример:

var idc: TidTCPClient;
   ms: TMemoryStream;

...
для 10 версии
var b: TBytes;// для преобразования в Tbytes из TStream используй               //TidStreamVCLWin32
idc.IOHandler.Write(b);

для 9 версии (которая встроена в delphi 7) всё гораздо проще :))

idc.WriteStream(ms);

/////////////////////////////////
НА СТОРОНЕ СЕРВЕРА ВСЁ ТОЖЕ САМОЕ, ТОЛЬКО НЕ ЗАБЫВАЙ ПРО МНОГОПОТОЧНОСТЬ!!!



Страницы: 1 вся ветка

Текущий архив: 2005.03.13;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.074 c
6-1105520475
stone
2005-01-12 12:01
2005.03.13
Параметр lpszProfileName в MapiLogOn


3-1108142602
Вовик
2005-02-11 20:23
2005.03.13
Из Excel в DBGrid


4-1107250280
ALex01
2005-02-01 12:31
2005.03.13
Excel и Word


4-1107014004
Остановка колеса фортуны?
2005-01-29 18:53
2005.03.13
Остановка колеса фортуны?


3-1108306149
UVV
2005-02-13 17:49
2005.03.13
Почему не работает запрос в Oracle?