![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Попытка написать rAdmin. Вопросы по Indy [D7, WinXP]
KOLYA-rzn © (2006-09-01 21:16:00)Очередная моя попытка написать программу. И сразу несколько вопросов по Indy IdTCP..:
1) Можно ли принимать через readbuffer различные типы?? Если да, то как.(*поясняю я буду посылать различные запросы, иногда файлы, иногда картинки , используя один сервер.Как лучше это реализовать)
2)Говорят, что посылать картинку лучше 1-ую в bmp , а вторую - как bmp2 xor bmp1 . Но примера этому не нашел. Как это реализовать??
3)Как можно сделать закачку с отображением процесса? Я хочу сделать файловый менеджер.
Вот и всё хотел я сделать через один сервер. Возможно ли это?
Cyrax (2006-09-04 10:08:00) [21]> конечно нужен протокол причем можно начать с простейшего и все передавать явном виде, потом быстро придет понимание того что оставить, а что выкинуть
В явном виде - это как ?
dwar (2006-09-04 04:54:00) [22]
> Но для полноценного RAdmin'а, конечно, нужен полноценный
> прикладной протокол...
конечно нужен протокол причем можно начать с простейшего и все передавать явном виде, потом быстро придет понимание того что оставить, а что выкинуть
Cyrax (2006-09-03 23:38:00) [23]KOLYA-rzn (03.09.06 22:53) [18]
Так всё-таки остановился на Indy?
Ketmar (2006-09-03 23:10:00) [24]> Напишите пример передачи данных с прогресс баром.
можут, сразу весь код?
KOLYA-rzn (2006-09-03 22:53:00) [25]Вот моё решение :
1)
Byte1:=2;
SendBuf(Byte1,SizeOf(Byte));
Server:
RecieveBuf(Byte1,SizeOf(Byte));
case Byte1 of
1:s:=RecieveText....;
2:s:=RecieveBuf(TFileStream,Socket.RecieveLenght)
....
Так правильно?
2) Напишите пример передачи данных с прогресс баром.
может быть:
Byte1:=2;
//of Byte1:=3 if not start of file
SendBuf(Byte1,SizeOf(Byte));
SentBuf(ArrayOfBytes,SizeOf(ArrayOfBytes));
'клиент аналог ^^
Cyrax (2006-09-03 16:22:00) [26]Eraser © (03.09.06 15:36) [16]
Думаю, для простой системы передачи разнородных данных этого достаточно.
Но для полноценного RAdmin'а, конечно, нужен полноценный прикладной протокол...
Eraser (2006-09-03 15:36:00) [27]> [15] Cyrax © (03.09.06 15:08)
к чему только этот протокол прикладывать? или ты проектируешь систему передачи типов?, тогда да, все правильно :)
Cyrax (2006-09-03 15:08:00) [28]Eraser © (03.09.06 13:38) [14]
...сперва посылаешь тип передаваемых данных 1 байт byte, каждый
тип имеет свою константу...
> эт ещё что за ерунда
> сейчас речь о прикладном протоколе, который тебе прийдется изобретать
Чем тебе не простейший прикладной протокол ?
И типы, и размер данных определяет...
Eraser (2006-09-03 13:38:00) [29]> [13] Cyrax © (03.09.06 08:36)
при чем тут TCP?
сейчас речь о прикладном протоколе, который тебе прийдется изобретать.
Cyrax (2006-09-03 08:36:00) [30]Eraser © (03.09.06 00:48) [12]
эт ещё что за ерунда, какой тип данных отсылать или принимать решает протокол в общем случае.
Ну и какие типы данных передаёт протокол TCP ???
Отень интелесно...
Eraser (2006-09-03 00:48:00) [31]> [2] Dmitrij_K (01.09.06 21:53)
> сперва посылаешь тип передаваемых данных 1 байт byte, каждый
> тип имеет свою константу
эт ещё что за ерунда, какой тип данных отсылать или принимать решает протокол в общем случае.
Cyrax (2006-09-02 23:46:00) [32]KOLYA-rzn (02.09.06 22:55) [10]
> в нете не могу найти по этому поводу инфы
По поводу того, как передавать данные по сети через TCP/IP?
Или конкретно по Indy?
И вообще, ты работал с TCP/IP? Если да, то какие средства использовал: напрямую с winsock, netapi или компоненты вроде Indy?
KOLYA-rzn (2006-09-02 22:55:00) [33]Мне кажется я что-то не понимаю, но в нете не могу найти по этому поводу инфы.
Cyrax (2006-09-02 22:17:00) [34]KOLYA-rzn (01.09.06 22:33) [3]
> Тогда возникает вопрос а целесообразно ли переходить на indy???
Переходить на Indy с чего? Indy тоже работает через winsock...
KOLYA-rzn (02.09.06 12:19) [5]
> в этом то и проблема в безошибочном определении типа...
Наверху писали:
сперва посылаешь тип передаваемых данных 1 байт byte, каждый тип имеет свою константу, далее размер данных 4 байта Integer, а потом сами данные, в таком порядке принимаешь
KOLYA-rzn (02.09.06 12:19) [5]
> не представляю себе: файл сам по себе передается через filestream и узнать его размер(полученный) будет проблематично
Через какой filestream (рассматриваем Indy?)...
И в чём заключается проблема?..
KOLYA-rzn (2006-09-02 17:29:00) [35]>Virgo_Style © (02.09.06 16:28) [6]
естественно в jpeg
Ketmar (2006-09-02 16:48:00) [36]> [5] KOLYA-rzn (02.09.06 12:19)
учить матчасть. читать справку.
Virgo_Style (2006-09-02 16:28:00) [37]2. Если посылать как bmp, то без разницы
KOLYA-rzn (2006-09-02 12:19:00) [38]2dwar
1.в этом то и проблема в безошибочном определении типа...
3.не представляю себе: файл сам по себе передается через filestream и узнать его размер(полученный) будет проблематично.
dwar (2006-09-02 09:32:00) [39]1.Можно буффер принимает данные типа byte,так что ему в принципе все равно что это за тип, надо просто разработать протокол обмена данными чтоб однозначно определять тип и размер.
3. Зная из протокола обмена размер можно сделать без особых усилий
KOLYA-rzn (2006-09-01 22:33:00) [40]2Ketmar ©
возможно но отдельно писать не имеет смысла т.к. я представляю себе этот код
2Dmitrij_K
Спасибо ! Но в этом примере используются Соккеты... Тогда возникает вопрос а целесообразно ли переходить на indy??? Напиши мал. пример клиент/сервер О распозн типов напр. Type1-Type2. я на примере лучше понимаю.
+
4)Могу ли записать в тип Type1= record массив байтов?