Текущий архив: 2007.02.11;
Скачать: CL | DM;
ВнизПопытка написать rAdmin. Вопросы по Indy Найти похожие ветки
← →
KOLYA-rzn (2006-09-01 21:16) [0]Очередная моя попытка написать программу. И сразу несколько вопросов по Indy IdTCP..:
1) Можно ли принимать через readbuffer различные типы?? Если да, то как.(*поясняю я буду посылать различные запросы, иногда файлы, иногда картинки , используя один сервер.Как лучше это реализовать)
2)Говорят, что посылать картинку лучше 1-ую в bmp , а вторую - как bmp2 xor bmp1 . Но примера этому не нашел. Как это реализовать??
3)Как можно сделать закачку с отображением процесса? Я хочу сделать файловый менеджер.
Вот и всё хотел я сделать через один сервер. Возможно ли это?
← →
Ketmar © (2006-09-01 21:20) [1]возможно. но тебе -- ещё рановато на такое замахиваться. сделай сначала по-отдельности.
← →
Dmitrij_K (2006-09-01 21:53) [2]1) сперва посылаешь тип передаваемых данных 1 байт byte, каждый тип имеет свою константу, далее размер данных 4 байта Integer, а потом сами данные, в таком порядке принимаешь
2) не знаю
3) см 1. так сможешь организовать прогресбар итд
давно пытался написать смотри http://slil.ru/23080069
← →
KOLYA-rzn (2006-09-01 22:33) [3]2Ketmar ©
возможно но отдельно писать не имеет смысла т.к. я представляю себе этот код
2Dmitrij_K
Спасибо ! Но в этом примере используются Соккеты... Тогда возникает вопрос а целесообразно ли переходить на indy??? Напиши мал. пример клиент/сервер О распозн типов напр. Type1-Type2. я на примере лучше понимаю.
+
4)Могу ли записать в тип Type1= record массив байтов?
← →
dwar © (2006-09-02 09:32) [4]1.Можно буффер принимает данные типа byte,так что ему в принципе все равно что это за тип, надо просто разработать протокол обмена данными чтоб однозначно определять тип и размер.
3. Зная из протокола обмена размер можно сделать без особых усилий
← →
KOLYA-rzn (2006-09-02 12:19) [5]2dwar
1.в этом то и проблема в безошибочном определении типа...
3.не представляю себе: файл сам по себе передается через filestream и узнать его размер(полученный) будет проблематично.
← →
Virgo_Style © (2006-09-02 16:28) [6]2. Если посылать как bmp, то без разницы
← →
Ketmar © (2006-09-02 16:48) [7]> [5] KOLYA-rzn (02.09.06 12:19)
учить матчасть. читать справку.
← →
KOLYA-rzn (2006-09-02 17:29) [8]>Virgo_Style © (02.09.06 16:28) [6]
естественно в jpeg
← →
Cyrax © (2006-09-02 22:17) [9]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 22:55) [10]Мне кажется я что-то не понимаю, но в нете не могу найти по этому поводу инфы.
← →
Cyrax © (2006-09-02 23:46) [11]KOLYA-rzn (02.09.06 22:55) [10]
> в нете не могу найти по этому поводу инфы
По поводу того, как передавать данные по сети через TCP/IP?
Или конкретно по Indy?
И вообще, ты работал с TCP/IP? Если да, то какие средства использовал: напрямую с winsock, netapi или компоненты вроде Indy?
← →
Eraser © (2006-09-03 00:48) [12]> [2] Dmitrij_K (01.09.06 21:53)
> сперва посылаешь тип передаваемых данных 1 байт byte, каждый
> тип имеет свою константу
эт ещё что за ерунда, какой тип данных отсылать или принимать решает протокол в общем случае.
← →
Cyrax © (2006-09-03 08:36) [13]Eraser © (03.09.06 00:48) [12]
эт ещё что за ерунда, какой тип данных отсылать или принимать решает протокол в общем случае.
Ну и какие типы данных передаёт протокол TCP ???
Отень интелесно...
← →
Eraser © (2006-09-03 13:38) [14]> [13] Cyrax © (03.09.06 08:36)
при чем тут TCP?
сейчас речь о прикладном протоколе, который тебе прийдется изобретать.
← →
Cyrax © (2006-09-03 15:08) [15]Eraser © (03.09.06 13:38) [14]
...сперва посылаешь тип передаваемых данных 1 байт byte, каждый
тип имеет свою константу...
> эт ещё что за ерунда
> сейчас речь о прикладном протоколе, который тебе прийдется изобретать
Чем тебе не простейший прикладной протокол ?
И типы, и размер данных определяет...
← →
Eraser © (2006-09-03 15:36) [16]> [15] Cyrax © (03.09.06 15:08)
к чему только этот протокол прикладывать? или ты проектируешь систему передачи типов?, тогда да, все правильно :)
← →
Cyrax © (2006-09-03 16:22) [17]Eraser © (03.09.06 15:36) [16]
Думаю, для простой системы передачи разнородных данных этого достаточно.
Но для полноценного RAdmin"а, конечно, нужен полноценный прикладной протокол...
← →
KOLYA-rzn (2006-09-03 22:53) [18]Вот моё решение :
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));
"клиент аналог ^^
← →
Ketmar © (2006-09-03 23:10) [19]> Напишите пример передачи данных с прогресс баром.
можут, сразу весь код?
← →
Cyrax © (2006-09-03 23:38) [20]KOLYA-rzn (03.09.06 22:53) [18]
Так всё-таки остановился на Indy?
← →
dwar © (2006-09-04 04:54) [21]
> Но для полноценного RAdmin"а, конечно, нужен полноценный
> прикладной протокол...
конечно нужен протокол причем можно начать с простейшего и все передавать явном виде, потом быстро придет понимание того что оставить, а что выкинуть
← →
Cyrax © (2006-09-04 10:08) [22]> конечно нужен протокол причем можно начать с простейшего и все передавать явном виде, потом быстро придет понимание того что оставить, а что выкинуть
В явном виде - это как ?
← →
dwar © (2006-09-04 11:24) [23]Например:
размер заложить на 4 байта
затем 4 байта для типа
← →
Cyrax © (2006-09-04 11:30) [24]А для типа хватит и одного...
← →
dwar © (2006-09-04 11:31) [25]можно и один
← →
KOLYA-rzn (2006-09-04 13:11) [26]Я остановился на Sockets так проще. Немного освоив TCP перейду на Indy.
Так правильно?Вы это имели в виду???
← →
Сергей М. © (2006-09-04 15:02) [27]
> KOLYA-rzn (04.09.06 13:11) [26]
>
> Я остановился на Sockets так проще. Немного освоив TCP перейду
> на Indy.
> Так правильно?
Сие есть самое разумное решение, если под "Sockets" подразумеваются TServer/ClientSocket или TTCPServer/Client
← →
KOLYA-rzn (2006-09-04 17:28) [28]>\Сергей М. © (04.09.06 15:02) [27]
>Сие есть самое разумное решение, если под "Sockets" подразумеваются
>TServer/ClientSocket или TTCPServer/Client
Да так они и есть именно они
← →
Cyrax © (2006-09-04 22:22) [29]> Немного освоив TCP перейду
> на Indy.
И перепишешь весь код RAdmin"а ?
А если честно, то лучше всего освоишь сокеты и TCP/IP, поработав с winsock (мой первый опыт работы с сетью пришёл с winsock на Visual C++)... Но это ГОРАЗДО сложнее...
В то же время в Indy ничего нового о сокетах и протоколе не узнаешь из-за высокого уровня абстракции. Там все детали организации передачи данных скрыты от разработчика...
Что насчёт компонентов [ClientSocket, ServerSocket] и [TcpClient, TcpServer], то ни с теми, ни с другими я не работал... Поэтому не берусь за их сравнение с Indy. Но знаю, что TcpClient, TcpServer устарели... - замена им ClientSocket, ServerSocket...
И вообще, вначале лучше почитать доки по сокетам, TCP/IP и потокам и уже имея общее представление, начинать кодить...
← →
Eraser © (2006-09-04 22:36) [30]а я бы посоветовал использовать клинет-серверные компоненты от Indy, т.к. в данном случае протокол обмена данными будет весьма сложный, поэтому блокирующий режим здесь предпочтительнее, хотя ClientSocket и ServerSocket его поддерживают тоже..
← →
Cyrax © (2006-09-04 22:41) [31]Честно говоря, я тоже склоняюсь к Indy...
... может, из-за того что с другими компонентами не работал, а может и нет...
← →
dwar © (2006-09-05 05:33) [32]Indy достаточно неплохой компонент для работы и достаточно большое количество примеров существует по работе с ним, и на мой взгляд с ним будет попроще
← →
Cyrax © (2006-09-05 08:46) [33]Тьфу, перепутал в [29] - наоборот, ClientSocket, ServerSocket устарели - замена им TcpClient, TcpServer.
← →
KOLYA-rzn (2006-09-05 13:06) [34]я сейчас пишу для интереса. И я всё таки решил перейти на C# и дотнет.
← →
Cyrax © (2006-09-05 13:08) [35]я сейчас пишу для интереса. И я всё таки решил перейти на C# и дотнет.
Ух ты...
А почему ?
← →
KOLYA-rzn (2006-09-05 14:48) [36]работать придётся на нем седня принесу C# на 4 dvd дисках и MSDN на 2dvd
← →
Eraser © (2006-09-05 17:35) [37]> [34] KOLYA-rzn (05.09.06 13:06)
к слову, есть версия Indy, совместимая с .NET.
← →
Cyrax © (2006-09-05 19:13) [38]принесу C# на 4 dvd дисках и MSDN на 2dvd
Итого 6 DVD ???
У меня Visual Studio 2005 c MSDN весит чуть меньше 4 Гб т.е. 1 DVD...
Eraser © (05.09.06 17:35) [37]
к слову, есть версия Indy, совместимая с .NET.
Интересно...
← →
Eraser © (2006-09-05 19:23) [39]> [36] KOLYA-rzn (05.09.06 14:48)
> работать придётся на нем седня принесу C# на 4 dvd дисках
> и MSDN на 2dvd
ерунда какая-то.
← →
Cyrax © (2006-09-05 23:02) [40]C# на 4 dvd дисках и MSDN на 2dvd
Может это CD?
Страницы: 1 2 вся ветка
Текущий архив: 2007.02.11;
Скачать: CL | DM;
Память: 0.54 MB
Время: 0.042 c