Я пытаюсь отправить структурированный документ с буферами протокола из C++ в C#. Я получаю сообщение об ошибке. Позвольте мне объяснить вам процедуру, которой я следовал.Protobufer от C++ до C# over Socket
C++ Side
1- я составил свой файл .proto с 2.6.1 protoc
message SensorsReport {
required double speed = 1;
required double rpm = 2;}
2 - я получил заголовки, которые являются .h файл и .cc файл. Я добавил в свой проект, и я начал заполнять свою структуру.
SensorsReport report; // My message with 2 double
report.set_rpm(info.mEngineRPM); // I fill the first one
report.set_speed(speedcalculated); // I fill the second one
string buf; // Create a string to put the data in
report.SerializeToString(&buf); // Serialize data
send(tcp_socket, buf.data(), (int)strlen(buf.data()), 0); // Send sentece
C# Side
1- Я добавил к моему проекту DLL Protobuf-сеть, и я создаю мой класс с сообщением.
using System;
using ProtoBuf;
[ProtoContract]
public class SensorsReport
{
[ProtoMember(1)]
double speed { get; set; }
[ProtoMember(2)]
double rpm { get; set; }
}
2- Я создаю NetworkStream для получения потока и десериализации.
NetworkStream stream = tcpClient.GetStream();
SensorsReport newdata = Serializer.Deserialize<SensorsReport>(stream);
Это моя процедура, и я получаю следующую ошибку: Invalid провода типа я прочитал, что это что-то с Сопутствующим способом создания сообщения, но я думаю, что я все правильно. Не так ли?
Нет, если что-то не работает, все не так! – Vtik