gpt4 book ai didi

C++ 无输出,boost.asio

转载 作者:太空宇宙 更新时间:2023-11-04 13:10:32 24 4
gpt4 key购买 nike

我正准备使用 Boost.Asio 编写一个 IRCBot,我有函数 getMsg:

std::string getMsg()
{
buffer.clear(); //make sure buffer is empty
buffer.resize(512); //make sure it's big enough for 512char
socket.read_some(boost::asio::buffer(&buffer[0],buffer.size()));
std::size_t pos = buffer.find("PING :");
if(pos != std::string::npos)
{
sendMsg("PONG :" + buffer.substr(pos + 6));
}
return buffer;
}

在我的 main 函数中使用 std::cout << Text;我得到了一个输出,但是当尝试 std::cout << "Hello"时,似乎什么也没有发生:

while(true)
{
std::string Text = Test.getMsg();
std::cout << Text; //OUTPUT
}


while(true)
{
std::string Text = Test.getMsg();
std::cout << "TEST"; //NO OUTPUT ---- WHY?
}

最佳答案

您询问的错误很可能是因为您没有刷新标准输出:std::cout << "TEST" << std::flush;这与 boost::asio 无关。

但是您的 asio 代码也有一个可能的错误:You are looking for PING :由于 TCP 的工作方式(它是流,而不是数据包),在单个读取调用中可能永远不会在单个读取调用中收到。如果它是 UDP 套接字,它就可以工作。

关于C++ 无输出,boost.asio,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40184111/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com