Лучшая практика для форматирования строки, которую необходимо отправить через TCP / IP - PullRequest
0 голосов
/ 24 октября 2019

У меня есть пара параметров, которые необходимо отправить клиентскому приложению через TCP / IP.

Например:

//inside C++ program
int Temp = 10;
int maxTemp = 100; 
float Pressure = 2.3;

Вопрос: Как лучше всего форматировать строку? Мне нужно убедиться, что вся строка получена клиентом, и на стороне клиента должно быть проще декодировать строку.

По сути, я хочу знать, каким должен быть формат строки , который я собираюсь отправить?

PS: Клиентское приложение на C #, а приложение отправителя на Qt (C ++).

Ответы [ 2 ]

1 голос
/ 24 октября 2019

Это довольно субъективно, но если это всегда будет так просто, как описано, то: не усложняйте:

ASCII, разделенные пробелом, инвариантные (независимые от культуры) целые числа формата в их полностью развернутой форме (без E и т. д.), CR в качестве конечного стража, поэтому:

10 100 2

(с CR в конце) Это масштабируется до любого количества записей и будет легко декодироваться практически с любой платформы.

Если это становится более нюансированным: используйте созданный для работы сериализатор и просто поделитесь сведениями о том, какой формат сериализации вы используете.

0 голосов
/ 24 октября 2019

Используйте ASCII в форме paramName paramValue, разделенный пробелами, независимый от культуры формат и используйте целые числа в их полной форме (без обозначения E) и возврат каретки в конце, например: T 10 P 100 mT 2 с CR наконец. С другой стороны, вы можете просто разбить строку на пробелы и заметить, что четные индексы являются параметрами, а индексы шансов являются значениями параметров. Обратите внимание, что для каждого четного индекса имени параметра i тогда i+1 является соответствующим значением параметра нечетного индекса. Также обратите внимание на CR в конце.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...