C++ Boost Asio удаление хранилища Sesion-соединение в векторе на сервереC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 C++ Boost Asio удаление хранилища Sesion-соединение в векторе на сервере

Сообщение Anonymous »


У меня две совмещенные проблемы
[*]Я не знаю, как завершить работу функции чтения, если она не получила никаких данных, прервать соединение и уведомить сервер. [*]При удалении сеанса класса из вектора m_storageSession, расположенного на сервере классов, после завершения получения данных std::vector m_StorageSession;
void Server::startAcceptNewConnectionAsync() { m_Acceptor.async_accept( [это](boost::system::error_code aError_code, boost::asio::ip::tcp::socket aSocket) { если (!aError_code) { boost::asio::ip::tcp::endpoint endpoint = aSocket.remote_endpoint(); std::shared_ptr newSession = std::make_shared (это, m_SessionID.GetFreeID(), endpoint.address().to_string(), endpoint.port(), std::move(aSocket)); newSession->start(); m_StorageSession.push_back(newSession); } startAcceptNewConnectionAsync(); }); } void Server::notificationAbautCloseConnectionSession(const size_t& theIdSession) { for (int i = 0; i getIdSession() == theIdSession) { m_SessionID.DeleteSession(m_StorageSession->getIdSession()); m_StorageSession->закрыть(); перерыв; } } } Сессия::~Сессия() { если (m_Owner) { m_Owner-> notificationAbautCloseConnectionSession (m_IdSession); // Сервер*m_Владелец } } void Session::do_read() { автоматически себя (shared_from_this()); m_Socket.async_read_some(boost::asio::buffer(m_FrameCommunicationDataIn.getBuforData() + m_FrameCommunicationDataIn.getIndexSaveDataInBuffor(), m_FrameCommunicationDataIn.getSizeBufforData()), [this, self](boost::system::error_code ec, std::size_t length) { если (!ec) { если (длина!= 0) { m_FrameCommunicationDataIn.setAmauntCopyDataIn(длина); новыеДанныеИзСессии(); } еще { это->~Сессия(); } do_read(); } }); } Я хочу, чтобы сеанс уведомил сервер о том, что он завершил получение данных и сервер удалил их из вектора.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Отправка IP-команд boost/asio на сервере REST httplib не работает
    Anonymous » » в форуме C++
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Соединение не может быть завершено в Linux boost::asio::spawn
    Anonymous » » в форуме Linux
    0 Ответы
    43 Просмотры
    Последнее сообщение Anonymous
  • Boost asio TCP-соединение не получило данные после повторного подключения и чтения
    Гость » » в форуме C++
    0 Ответы
    60 Просмотры
    Последнее сообщение Гость
  • Попытка подключиться к серверу Socks 5 с использованием Boost :: Asio, но мой запрос на соединение оказывается уточненны
    Anonymous » » в форуме C++
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Как я могу рефакторировать старые звонки Asio Asio
    Anonymous » » в форуме C++
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»