Отправка данных через TCP / IP с помощью сокетов и сериализация данных - PullRequest
0 голосов
/ 29 декабря 2010

Мне нужно отправить через TCP / IP с сокетами строку в формате CHARINT, INT, где CHAR - это символ, а INT - это числа.Какой лучший способ отправить их и получить их?И как я могу разбить эту строку, когда я получаю ее, чтобы снова иметь два целых числа?

1 Ответ

1 голос
/ 29 декабря 2010

Есть много способов сделать то, что вам нужно, и выбор зависит от того, насколько расширяемым вам должно быть решение.Если вам нужны только два целых числа, вы можете отправить их, поместив их в массив "int arr [2];"и используйте send (arr, 2 * sizeof (int)) для отправки данных.При получении данных вы делаете обратное.

Довольно простой, но простой в реализации метод для сериализации небольших объемов данных - это преобразование чисел в текст (с помощью itoa ()) и отправка списка значений, разделенных запятой.С другой стороны, вы анализируете строку, просто разделяя ее, используя кому в качестве разделителя, а затем используя atoi () для преобразования значений обратно в целые.

Однако для чего-то более сложного вам нужна более гибкая схема.Ищите «сериализация» на этом сайте для различных вариантов.Любая общая схема потребует парсера, и имеет смысл не изобретать велосипед.ASN.1 - это универсальный двоичный протокол для сериализации, широко используемый в индустрии связи.

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