В моем приложении на основе JBoss (версия 5) мне нужно прослушивать UDP-пакеты.
Самый простой способ (и, вероятно, единственный) - открыть DatagramSocket на определенном порту (используя JBoss @Service singletonbean) и вызовите метод получения (...).Первая часть довольно проста - я протестировал ее и работает как положено.Вторая часть - получение пакетов более сложное.
Меня интересует дизайн такого кода.Как указано в DatagramSocket javadoc, получение является блокирующей операцией - оно блокируется до получения пакета.Как написать код, чтобы убедиться, что он быстрый, масштабируемый и поточно-ориентированный?
Я думал о написании bean-компонентов без сохранения состояния, которые содержат ссылку на singleton с открытым соединением, и эти bean-объекты вызывают метод receive - но яЯ не очень уверен, как JBoss будет управлять ими (один бин вызывает receive () и пока пакет не прибудет, он заблокирован).Можно ли использовать какой-либо шаблон?