Я создал клиент-серверную архитектуру, используя Boost Asio.
Всё работает, я могу отправлять и получать сообщения и т. Д., Поэтому нет сомнений в правильности. Однако, когда я внедряю его в реальную сеть, он вдруг становится ОЧЕНЬ медленным. Когда я запускаю сервер и клиент на одном компьютере, он работает невероятно быстро, но когда я запускаю его на 2 разных компьютерах, он становится чрезвычайно медленным, мне приходится ждать секунду для каждого сообщения. И эти сообщения МАЛЫЕ, может быть, 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, не работает. Что еще я могу сделать?