Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 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.034 c
3-1108361995
Некто
2005-02-14 09:19
2005.03.13
Запросы от многих пользователей


4-1102996884
school
2004-12-14 07:01
2005.03.13
диологи открытия-закрытия файлов


9-1101644082
XProger
2004-11-28 15:14
2005.03.13
TIME FOR KILL


8-1100757230
Centr
2004-11-18 08:53
2005.03.13
куда щелкнул юзер?


1-1109325023
vigo
2005-02-25 12:50
2005.03.13
TClientDataSet





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский