![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 6 Всего: 360 |
Приветы, профи!
Надо мне тут создать что-то вроде своего обработчика своего же события. Как бы обьяснить... Ну вот например есть у сокета функция listen(), при её вызове всё приложение ждёт, пока с клиента не придёт запрос, а потом отрабатывает. Вот и у меня надо создать такию функцию с разницей, что ожидаемый запрос приходит из моего же приложения. В С есть длq этого waitForEvent(); Для тех, кто хочет подробностей: Создаю клиент/сервер - приложение. Коммуникация идёт как клиент-сервер, так и сервер-клиент. Естественно HTTP это запрос-ответ и послание сообщения с сервера клиенту равносильно ответу на запрос клиента. Интерфейсы на сервере и клиенте одинаковые. listen() send(). Вот надо чтобы на клиенте функция listen() "висела", пока приложение не сообщит ей о том, что ответ с сервера пришёл. Сейчас сделал так :
|
|||
|
||||
| powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
Нормальный loop. Так обычно и делают, выносят слушателя с циклом в отдельный поток, когда приходит время обработки, то создается новая нить в которой уже работает обработчик.
Т.е. существует 1 поток ожидающий - в нем цикл с определенной задержкой (варьирование задержи позволяет оптимизировать работу системы в реальных условиях (иногда её лучше побольше сделать, иногда поменьше)) и много потоков обработчиков. Когда необходимо обработать очередное событие, ожидающий поток создает новый обработчик события и запускает его в новом потоке (рабочий поток). |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |