Я работаю над проектом, который включает несколько приложений на нескольких компьютерах. Основным приложением является сервер сокетов C++, работающий на сервере CentOS, а клиентское приложение - это программа Java, работающая на клиентских компьютерах.Протокол связи сокета/стандарт
Они будут связываться взад и вперед, используя разъемы. Я определил набор команд и аргументов, которые им нужно будет реализовать, чтобы поддерживать все.
Я думал, что из нескольких вариантов, но я не могу показаться, чтобы найти идеальную ..
- Если C++ и Java программы написать свои собственные классы/парсер для проверки достоверности сообщений?
- Должен ли я создать XML-файл (обслуживаемый через HTTP), который определяет все коммуникационные сообщения? (То, что клиент/сервер будет анализировать и создавать действия для)
- Или использовать какой-то сторонней библиотеки (Google Protocol Buffers?)
Дело в том, что когда сервер сокет посылает сообщение X
, то клиент должен знать, что с ним делать. То же самое применяется в другом направлении.
Что было бы лучшим способом реализовать это? Наличие файла XML будет приятным, так как клиент/сервер может его проанализировать и создать методы/действия на основе данных. Но более четким подходом было бы создание классов, которые будут выполнять синтаксический анализ.
Почему XML, а не JSON? Кроме того, если вы хотите легко отладить свой протокол, лучше использовать текстовый протокол; но это ваш выбор в конечном счете. – fge
Сообщения основаны на тексте. – DavidS
Да, но я говорил о протоколе вообще (что обертывает сообщения и т. Д.) – fge