【发布时间】:2010-09-07 12:15:31
【问题描述】:
我使用 Boost Asio 创建了一个客户端-服务器架构。
整个事情都有效,我可以发送和接收消息等,所以正确性毫无疑问。但是,当我在真实网络中实现它时,它突然变得非常慢。当我在同一台计算机上运行服务器和客户端时,它的速度非常快,但是当我在两台不同的计算机上运行它时,它变得非常慢,我必须为每条消息等待一秒钟。这些消息很小,可能最多 50、60 个字符。但它们已正确发送。
代码:
stream = new tcp::iostream(serverIp, portNum); // Clientside
对于发送和接收,我使用:
(*stream) << data << delimiter;
std::getline(*stream, response, '#');
服务器使用相同的发送和接收,以及一些设置代码来建立连接:
boost::asio::io_service io_service;
tcp::endpoint endpoint(tcp::v4(), portNum);
tcp::acceptor acceptor(io_service, endpoint);
for (;;)
{
tcp::iostream *stream = new tcp::iostream();
acceptor.accept(*(stream->rdbuf()));
// Do stuff with the stream
}
再次,它工作,只是非常缓慢突然在一个真实的网络上。有什么我做错了吗?我尝试更改portNum,没有用。我还能做什么?
【问题讨论】:
标签: c++ boost boost-asio