私の問題は、私はC++アプリはC#のアプリからの連続したメッセージを受信できません
TcpClient con = new TcpClient ("127.0.0.1", 5432);
NetworkStream str = con.GetStream();
Annoucement msg = new Annoucement();
msg.typ = Annoucement.msgType.NOWY_GRACZ;
Serializer.SerializeWithLengthPrefix (str, msg, PrefixStyle.Base128);
Serializer.SerializeWithLengthPrefix (str, msg, PrefixStyle.Base128);
を行うと、私は
私は読むことができますConnection con = server.accept();
Annoucement ann = con.receive();
cout << ann.typ() << endl;
ann = con.receive();
cout << ann.typ() << endl;
をプロトコルバッファを使用してカスタムライブラリで受信しようとするということです最初のものだけ。フィールドtyp
は0に設定されているのに対して、フィールド3は3に設定されているので、2番目は間違っています。私は関数が何か間違っていますが、何がわからないと思います。
Annoucement Connection::receive() throw(EmptySocket) {
CodedInputStream coded_input(raw_input);
google::protobuf::uint32 n;
coded_input.ReadVarint32(&n);
char *b;
int m;
coded_input.GetDirectBufferPointer((const void**)&b, &m);
Annoucement ann;
ann.ParseFromArray(b, n);
return ann;
}
一つの変数はコンストラクタで初期化されて、私はソケットからの連続したメッセージを読むことができるように
FileInputStream* raw_input;
raw_input = new FileInputStream(s); //s is socket in this example communication
は、どのように私はそれを修正することができますか? referenceから