任何想法为什么stream.flush();
行不通?
boost::asio::ip::tcp::iostream stream("localhost","5000");
assert(stream.good());
stream << 1;
stream.flush();
while(true);
只有在删除循环并
boost::this_thread::sleep(boost::posix_time::seconds(1));
执行该行(很久以后)时才会刷新它。
谢谢
更新:我做了更多的调试,问题实际上不是flush命令。如果我让我的代码连接到 netcat 服务器,一切正常。我认为问题在于客户端和服务器都在同一个进程中(我创建了两个威胁,一个充当服务器,一个充当客户端)。当我将它们放在单独的进程中时,一切正常,但是当两者都在同一个进程中时,传输会停止,直到调用 sleep ......(这只是出于测试原因,稍后两者都将在不同的服务器上运行)。
平台是WindowsXP。
任何想法为什么会发生这种情况?