У меня есть две программы, которые общаются друг с другом через TCP / IP, обмениваясь командами и данными (соединение уже успешно). Я ищу протокол, по которому я могу обмениваться командами (ASCII) и двоичными данными (float, double, int, char, wchar_t и т. Д.).
Есть ли какой-то стандарт для этого, который я мог бы использовать? или я должен просто изобрести свой собственный протокол для обмена вещами?
Программа написана на C ++ и Qt.
Если вы используете Qt, посмотрите на QDataStream
http://doc.qt.io/qt-4.8/qdatastream.html
Я бы предложил использовать заголовок + данные для описания такого рода сообщений.
В заголовке вы могли бы иметь, например, поле типа сообщения и в соответствии с его значением вы можете привести содержимое данных.
Я думаю, что это не так сложно реализовать.
Когда у вас есть это, вы можете обмениваться такими структурами через все, что захотите (например, QDataStream)
Если вы используете Qt, этот может быть полезным
В общем, вы должны выбрать побайтовый формат, а затем сериализовать и десериализовать его в каждую сторону сокета. В противном случае вы в конечном итоге столкнетесь с проблемой либо с порядком байтов, либо с различными размерами между операционными системами (обычно 32-битные или 64-битные системы).