Форум: "Сети";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];
ВнизПередача картинок по 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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.037 c