Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Events у idTCPServer


Страницы:   1 2

ManGorn ©   (2003-07-07 09:48:00) 

OnConnect и OnDisconnect - это понятно, но вот когда происходят:

OnAfterCommandHandler
OnBeforeCommandHandler
OnException
OnExecute
OnListenException
OnNoCommandHandler
OnStatus ?

(заранее спасибо за ответ)


ManGorn   (2003-07-27 15:44:00) [1]

Туфта! :)


Anatoly Podgoretsky   (2003-07-19 09:33:00) [2]

Все катит, только научись устанавливать компоненты и научись пользоваться блокнотом для чтения readme файлов.


ManGorn   (2003-07-19 08:38:00) [3]

Не-а, не катит!


Digitman   (2003-07-18 10:09:00) [4]

ну как ? обычным образом !

IDE-Меню "Component | Install packages ..", выбираешь из %DELPHI%\Lib BPL-модуль, хранящий эти компоненты (как он там обзывается - я не в курсе, спроси у других D7-юзеров), - и вот они уже у тебя в палитре !)


ManGorn   (2003-07-18 09:52:00) [5]

Как в D7 доставить компоненты TClientSocket и TServerSocket???


Digitman   (2003-07-14 14:37:00) [6]


> Polevi


да я не спорю)... но overlapped-нотификация, в принципе, сравнима по производительности с event-нотификацией.


Polevi   (2003-07-14 14:28:00) [7]

2Digitman © (11.07.03 17:39)
>и точно так же и избавляемся в этих классах при необходимости
>от механизма оконной нотификации по-умолчанию в пользу
>событийной.

это если использовать send, recv.. а вот WSASend, WSARecv с использованием ф-ии завершения overlapped ввода вывода - слишком много придется менять, imho, проще написать свою обертку


Digitman   (2003-07-14 13:59:00) [8]


> $hade


Тогда и мы все вместе с полным правом и удовольствием можем поГЫкать над самоуверенным заявлением ManGorn (14.07.03 13:34)


> Гы... а теперь скажу я :) Для тех кто плохо видит - см.выше. Я
>
> юзаю Delphi 7.0, и кто не помнит в нём больше нету TServerSocket
> и TClientSocket


$hade   (2003-07-14 13:54:00) [9]

Digitman © (14.07.03 13:50)
Воистину так! :-)


Digitman   (2003-07-14 13:50:00) [10]

Я не пользую D7 , но сдается мне, что пэкедж с этими компонентами так же как и в D6 просто убран с палитры по умолчанию и может быть в любой момент подключен из каталога %DELPHI%\Lib


$hade   (2003-07-14 13:49:00) [11]

Тьфу,б№;, прошлый пост от меня был :-)


Tiny   (2003-07-14 13:46:00) [12]

2Polevi © (11.07.03 16:22)
лучше когда базовым продуктом является Winsock API, IMHO

верно,конечно, нно действительно много гимора... Это конечно нужно знать но вот пользоваться этим, какой смысл если есть более простое решение?

2Digitman © (11.07.03 17:39)

то же самое я могу сказать и про Indy...
хотя может просто я не занимался сетью углубленно как раз до появления Indy...
(а переход с TServerSocket/TClientSocket на Indy - как минимум небольшой шок :-) типа - где читать то??! куда писать?? а еще и документация только платная??)

2ManGorn (14.07.03 13:34)
Для тех кто плохо видит - см.выше. Во-во! Я вроде ответил на твой вопрос :-)


ManGorn   (2003-07-14 13:34:00) [13]

Гы... а теперь скажу я :) Для тех кто плохо видит - см.выше. Я
юзаю Delphi 7.0, и кто не помнит в нём больше нету TServerSocket
и TClientSocket. Отсюда приходится изобретать велосипед и
переходить на другие компоненты, подобные TIdTCPServer. Нет,
можно конечно и WinSock2 юзать, но нафига с ним париться?


Digitman   (2003-07-11 17:39:00) [14]


> Polevi


а какие проблемы их добавить ? imho, никаких)

первое, что я когда-то сделал - заменил accept() на WSAAccept(), получив замечательную "вкусность" : true-conditional acceptance.

и ввел посему новое событие OnAcceptRequest(), в обработчике которого - как это говорят - можно действительно "забанить юзера"

уверяю, гораздо проще было переписать пару субклассов и перекрыть несколько методов, нежели лепить "с нуля" свои классы !

и точно так же и избавляемся в этих классах при необходимости от механизма оконной нотификации по-умолчанию в пользу событийной.


Polevi   (2003-07-11 17:32:00) [15]

2Digitman © (11.07.03 16:53)

в TServerSocket/TClientSocket нет многих вкусностей WinSock2, к сожелению


Digitman   (2003-07-11 16:53:00) [16]


> Shade


TServerSocket/TClientSocket

прозрачны до мыслимого предела)
крути-верти их как хочешь, настраивай-перестраивай - все позволяют без особых хлопот !



> Polevi


О ! Це верно) ... Но уж больно много писать приходится кода)

То ли дело - переопределил нужные классы в составе, перекрыл нужные методы - и готова совершенно оригинальная версия !! С минимумом геморроя)


Polevi   (2003-07-11 16:22:00) [17]

лучше когда базовым продуктом является Winsock API, IMHO


Shade   (2003-07-11 15:20:00) [18]

2 Digitman © (11.07.03 15:14)
Ну в принципе согласен...

А базовый продукт - это что ? ServerSocket/ClientSocket? или bind()/send()/recive()?

Для меня родным и базовым стал Indy...:-)


Digitman   (2003-07-11 15:14:00) [19]


> Shade


зачем мне нужно тратить время на детальное (не поверхностное !!) изучение другого продукта, если базовый продукт я знаю как облупленный ?
- гибкость базового продукта в силу его простоты дает мне возможность контролировать транспорт от и до, так как мне надо в конкретных, порой нестандартных задачах;
- базовый продукт изучен вдоль и поперек - никаких неожиданностей я от него не жду; надежность и прозрачность - прежде всего


Shade   (2003-07-11 14:53:00) [20]

OnExecute выполняется периодически между OnConnect и OnDisconnect
то есть тут и делаеш в принципе всю обработку данных от клиента...
есть еще OnCommandHandler
OnAfterCommandHandler
OnBeforeCommandHandler
OnNoCommandHandler

в Indy уже есть "как бы протокол обмена данными" :-)
У клиента есть метод(ы) SendCmd(...)...
Соответственно на каждую команду у сервера есть CommandHandler то есть обработчик этой комманды (его нужно создать на сервере с помощью свойства CommandHandlers)
Соответственно, если обработчик команды не зарегестрирован произойдет событие OnNoCommandHandler

Кста,OnExecute произойдет помоему только если не используешь CommandHandlers

OnException
При любом необрабатываемом исключении в вышеописаных событиях...
OnListenException
При исключении в "слушающем потоке"

OnStatus ?
Всякая фигня типа сообщений о состоянии подключения ("Connect","Resolving Host","Disconnect")

2 Digitman ©
А с чего такая принципиальность в "неиспользовании" Indy?
Очень даже неплохие компоненты...
Я понимаю что ты и сам можешь сделать лучше ручками - но зачем изобретать велосипед?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо