| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Object Pascal: кроссплатформенные технологии > Консольный сервер |
| Автор: Lonser 27.4.2006, 20:53 |
| Всем привет ! Подскажите пожалуйста, как реализовать idUDPServer в консольном приложении ? Вся проблема в Events -> OnUDPRead, то есть как зделать чтобы сервер в каждый момент времяни слушал порт и принимал пришедшие сообщения ; ну и выводил их на экран. Заранее благодарен. |
| Автор: Snowy 27.4.2006, 21:51 |
| Не совсем ясно в чем проблема. Обычное динамическое создание. Создаешь сервер, назначаешь ему событие... Разница только в том, что событие нужно прописать ручками, а не мышой. Это делается одинаково, что в дельфи, что в кайликсе. Для любых объектов. |
| Автор: Lonser 28.4.2006, 01:03 | ||
Ну я собсно так и делаю, динамически создаю объект idUDPServer, ручками а не мышкой назначаю ему событие... но когда приходит UDP сообщение ничего не происходит... Вот посмотрите может что неправельно делаю ? Может надо OnUDPRead как-нибудь отдельным потоком запустить ?
p.s. uses`ов побольше подключил на всякий случай : потом буду убивать ненужные. |
| Автор: Snowy 28.4.2006, 08:34 | ||||
| Это сразу убирай, если хочешь, чтобы сервер был но-настоящему консольный. Т.е. мог работать без гуёв. Это поменяй местами. Сначала нужно присвоить все параметры, а потом активировать сервис. А вот в этом проблема. Создай переменную, например:
|
| Автор: Snowy 28.4.2006, 13:56 |
| Честно говоря, сейчас даже не подскажу. Кайликса под рукой нет. Есть FreePascal, но там все просто - keypressed существует. По идее должно быть что-то вроде keyboard.GetKeyState() но точно не скажу. |
| Автор: Lonser 28.4.2006, 15:37 |
| Сообщение удалено пользователем |
| Автор: Snowy 28.4.2006, 15:53 | ||
Перед se.Active := true нужно добавить строчку:
|
| Автор: Lonser 28.4.2006, 16:00 |
| Ага, точно ! Спасибо огромное !!! |