Надеюсь, вы простите меня, если это будет очевидно; просто начиная с C++/cli. Я использую образец кода C# для его создания, но я использую режим cli в унаследованном приложении C++, поэтому у меня возникают проблемы с переводом. Нелегко найти образцы в Интернете.C++/CLI с использованием XmlWriter с TcpClient, не записывающим
Это фрагмент кода. XDocument передается в этот код. Я проверил его, записав файл, и полученный XML-файл выглядит так, как должен (идентичный образцу C# app). Похоже, что вызов tcpclient работает, если я меняю адрес, он выдает исключение. Я также вижу соединение, установленное в TCP Sniffer.
Запрос-> WriteTo не работает - снифер показывает, что данные не записаны, и устройство не отвечает.
Далее, XmlReader :: Create call блокирует все.
Очевидно, что у меня что-то не так, как я настраиваю автора или поток.
Любые идеи?
Спасибо.
TcpClient^socket = gcnew TcpClient(address,port); // connect to device
NetworkStream^stream;
stream = socket->GetStream(); // get stream.
XmlWriter ^writer = XmlWriter::Create(stream,xmlWrite); // Create writer
request->WriteTo(writer); // Write XDocument to stream.
XmlReader ^reader = XmlReader::Create(stream,xmlRead);
TcpClient подключается по вызову выше. Как я уже говорил, программа sniffer TCP показывает, что она подключена. Но я попытался изменить код, потому что думал, что, возможно, вы что-то сделали, и создал сокет без параметров адреса, порта и последовал за ним с помощью команды socket-> Connect (address, port). Такое же поведение. Это устройство, с которым я подключаюсь, имеет очень специфическое поведение, и я уверен, что он закроет поток. Я не получаю никакого ответа на устройство, и, по сути, сниффер TCP не показывает данные, отправленные из WriteTo. – KokoCa