Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2007.02.11;
Скачать: [xml.tar.bz2];

Вниз

Попытка написать 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.55 MB
Время: 0.039 c
15-1169326330
kayman11111
2007-01-20 23:52
2007.02.11
спутник


15-1169397763
vasIzmax
2007-01-21 19:42
2007.02.11
Телефон vs Комп


15-1169438349
Slider007
2007-01-22 06:59
2007.02.11
С днем рождения ! 21 января


15-1169025265
Курдль
2007-01-17 12:14
2007.02.11
Как определить подлинность швейцарских часов недорогого класса?


3-1164137692
DillerXX
2006-11-21 22:34
2007.02.11
Помогите составить SQL запрос...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский