Как отметил @Konerak, вам придется реализовать некоторую форму QoS.
Вы можете попытаться определить тип данных для сообщений, с которыми вы их инкапсулируете, а затем добавить тег, чтобы аннотировать, что определенное сообщение являетсяопределенного вида (как ваша специальная розетка).Затем, когда сервер получает сообщение, вы можете вставить сообщение в очередь, где вы начинаете выполнение.Сначала выполните все сообщения, помеченные как «специальные» (или то, что вы хотите использовать), а затем перейдите ко всем сообщениям без тега.Очередь (FIFO) гарантирует, что все сообщения будут обработаны так, как они были получены.Обязательно посмотрите метод очереди * Peek
(http://download.oracle.com/javase/1,5.0/docs/api/java/util/Queue.html).
Это может работать как быстрое исправление с минимальным изменением кода, но это может открыть целый ряд проблем.,А именно Память, ссылаясь на размер очереди, поскольку другие сообщения не будут удалены, пока специальные сообщения не будут обработаны.
Вы также можете сохранить метод «Поток на клиента».Это вполне нормально в небольшой среде с подключенной парой клиентов, но когда вы начнете масштабироваться до больших номеров, вам, возможно, придется подумать об использовании NIO.Но, как я уже сказал, оба являются подходящими подходами, каждый из которых имеет свои плюсы и минусы.
Просто идея и пара вещей, которые нужно учитывать.