При реализации клиент-серверных решений один из вопросов, на которые вам всегда нужно ответить, касается протокола.
В простых случаях возможно, что пакеты всегда одного типа, поэтому протокол может дажене имеет никакой логики: клиент подключается к серверу, а сервер просто говорит какой-то факт, клиент отключается, и все.
В более сложных случаях некоторые пакеты могут быть отправлены только в некоторых конкретных случаях.Например, представьте себе абстрактный сервер, требующий авторизации: клиенты должны авторизоваться перед отправкой или получением каких-либо полезных данных.В этом случае появляется концепция сеанса.
Сессия - это концепция, которая описывает состояние диалога клиент / сервер: и клиент, и сервер ожидают чего-то от друг друга, в то время как есть и другие вещичто оба они не ожидают.
Затем, , углубляясь , делают вид, что протокол довольно сложный, и его реализация должна быть легко расширяемой.Я считаю, что теоретически правильным решением здесь является использование конечного автомата.Существуют ли какие-либо фреймворки / библиотеки Java, которые позволяют легко реализовать этот конечный автомат?Или, возможно, какие-то более специфичные для протокола решения?
Я ожидаю, что это структура, которая позволит мне определять состояния и переходы между ними.
Обновление :вопрос не в простейшей реализации клиент-серверного решения, а в вопросе реализации пользовательского протокола.Поэтому, пожалуйста, не рекомендуем использовать веб-сервисы.