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。
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
如何修改它,以便可以从套接字读取连续的消息?
没有找到相关结果
已邀请:
1 个回复
际恃啸称桅
(如果使用正确,应覆盖上面的#1) 错误处理(包括呼叫缓冲区中没有通知的情况)。 我猜您的问题是由上面的#3引起的,但是直到我看到
代码,我才能确定。