簡體   English   中英

C ++ TCP Server比較字符串失敗

[英]C++ TCP Server compare strings fails

我是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"; ,或者最好還是將其完全刪除,因為無論如何您實際上並沒有在比較中使用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM