C++ TCP 服务器比较字符串失败

C++ TCP Server compare strings fails

本文关键字:字符串 失败 比较 服务器 TCP C++      更新时间:2023-10-16

我是C++新手,决定更多地了解C++如何使用套接字。我目前正在学习本教程。

我正在尝试比较两个字符串。一个字符串是文字,test,另一个是从使用telnet的客户端接收的。但是,条件语句的计算结果始终为false,随后代码块永远不会执行。我错过了什么?

这是我遇到问题的代码:

while( (read = recv(sock , client_message , 2000 , 0)) > 0 )
{

std::string a = std::string(client_message);
std::string b = std::string("test");
std::cout << "string a" << a << std::endl;
std::cout << "string b" << b << std::endl;

if (a == "test")  {
std::cout << "Strings match!";
}

write(sock , client_message , strlen(client_message));
}

Telnet将发送CRLF,这将为client_message数组添加两个额外的字节。在比较之前,您需要从该内容中修剪空格。

此外,代码std::string b = std::string("test");是多余的。只是做std::string b = "test";,或者最好完全删除它,因为无论如何你都没有在比较中真正使用它。