Ответы пользователя по тегу Boost
  • Почему не работает эхо сервер на boost::asio?

    xorknown
    @xorknown
    Будут проблемы - решайте
    Проблема в выборе контейнера для сокетов. У вектора есть особенность, он распределяет все свои элементы последовательно в памяти и заранее выделяет под них память. В какой-то момент, при добавлении элемента, к примеру, он может изменить расположение этого последовательного участка в памяти. И получается что в своих потоках вы ссылаетесь на память в которой сокеты уже не находятся. std::vector::reserve лишь временное откладываение проблемы, которая покажет себя при большем кол-ве подключений.
    Следует задуматься о замене вектора на std::list , к примеру, который не имеет данной особенности.
    Ответ написан