嗨,我有点困惑。我的程序使用TCP通过网络传输消息。我认为这与我的问题无关。
std::stringstream tmp(buf);
if (tmp.str().find("\r\n") == std::string::npos ) {
std::cout << " doesnt have ending char" << std::endl;
}else{
std::cout << " position of ending char " << tmp.str().find("\r\n") << std::endl;
}
从客户端读取消息时,消息被推送到stringstream。然后我试图找到转义字符,不幸的是string.find(“ \ r \ n”)总是返回字符串的长度,即使buf中不包含“ \ r \ n”。
我正在使用
telnet
进行测试,是否可能是由于telnet引起的?
这是我终端的输出:
Connected to localhost.
Escape character is '^]'.
200 LOGIN
asdadsgdgsd
这是从程序输出的:
3001 PORT NUM
sent message: asdadsgdgsd END
position of ending char 11
答案 0 :(得分:1)
在控制台中输入然后发送和接收的字符串是
"asdadsgdgsd\r\n"
012345678901_2_
所以值11是正确的