我正在构建一个简单的c ++客户端,我将从服务器获取的信息拆分为帧,并将每个帧传递给处理它的函数,我使用
将帧拆分为行Poco::StringTokenizer tokenizer(frame, "\n");
我选择了表示帧类型的标记器的第一行
StmpCommand command(tokenizer[0]);
StmpCommand是一个包含不同类型消息的枚举 构造函数的工作原理如下:
StmpCommand(std::string command): commandType_() {
bool x=command=="CONNECTED";
std::cout<<x<<std::endl;
if ("SUBSCRIBE" == command)
commandType_ = SUBSCRIBE;
else if ("UNSUBSCRIBE" == command)
commandType_ = UNSUBSCRIBE;
else if ("SEND" == command)
commandType_ = SEND;
else if ("BEGIN" == command)
commandType_ = BEGIN;
else if ("COMMIT" == command)
commandType_ = COMMIT;
else if ("CONNECT" == command)
commandType_ = CONNECT;
else if ("MESSAGE" == command)
commandType_ = MESSAGE;
else if ("RECEIPT" == command)
commandType_ = RECEIPT;
else if ("CONNECTED" == command)
commandType_ = CONNECTED;
else if ("DISCONNECT" == command)
commandType_ = DISCONNECT;
else if ("ERROR" == command)
commandType_ = ERROR;
else {
std::cerr<<"Error in building StmpCommand object, unknown type - "<<command<<std::endl;
}
}
我试图处理的第一帧是一个CONNECTED帧 因此,我尝试使用CONNECTED创建一个StmpCommand作为构造函数的唯一参数 由于某种原因,我得到了:
Error in building StmpCommand object, unknown type - �CONNECTED
我正在传递一个包含CONNECTED的字符串,但我猜测还有其他东西不允许其他情况if(“CONNECTED”== command)to hap
答案 0 :(得分:0)
似乎你在命令的开头有一个迷路的角色。 “ CONNECTED”在这里显示为CONNECTED,这意味着至少有一个不可显示的角色。