Чтение XML-данных из TCP-сокета - PullRequest
0 голосов
/ 02 июня 2010

У меня есть устройство, которое отправляет мне данные через определенный порт. Данные в формате XML.

Теперь я уже создал небольшое консольное приложение, которое прослушивает данные и распечатывает данные на экране.

Теперь мои планы состоят в десериализации данных xml или я создам оператор вставки в базу данных.

1) Устройство отправляет мне данные каждую секунду (если есть данные для отправки мне). 2) Я не могу сказать, сколько данных устройство отправит мне.

Как я могу убедиться, что все данные записаны без потери информации ...

Готов обсудить?

КОД в C # или VB.NET

Ответы [ 2 ]

1 голос
/ 02 июня 2010

Для каждого XML-документа вам нужно будет постоянно читать из потока сокетов, пока не найдете соответствующий корневой конечный элемент;

<?xml version='1.0' encoding='utf-8'?><rootElement> ... </rootElement>

Готово, и ждите следующего документа.

0 голосов
/ 31 марта 2011

Как указывает Ганс Пассант, TCP разработан для точной доставки. Чтобы получить все tcp-данные, отправленные во время соединения (что звучит как ваш случай), используйте код в моем ответе на C # производительности методов получения данных из сокета? .

Как только вы получили все байты, вы можете выполнить обычное преобразование в текст, например, string stringData = Encoding.UTF8.GetString(bytes);

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