Модераторы: feodorv
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> boost::asio проблема с передачей больших пакетов 
V
    Опции темы
semensemenov
Дата 22.2.2011, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 16.2.2010

Репутация: нет
Всего: нет



День добрый!

Возникла проблема с передачей больших пакетов.
Не получается передать пакет больше 65535 байт

Код

void connection::write(unsigned char* data, unsigned long data_size, unsigned char packet_code)
{
    write_data = data;

    tHeader* header = (tHeader*)write_data;
    header->SystemCode = config.SystemCode;
    header->SubsystemCode = config.SubsystemCodeOwner;
    header->Key = config.Key;
    header->PacketSize = data_size + sizeof(tHeader);
    header->PacketCode = packet_code;

    boost::asio::async_write(socket_, boost::asio::buffer(write_data, header->PacketSize), boost::asio::transfer_all(),
        boost::bind(&connection::handle_write, this, boost::asio::placeholders::error,
            boost::asio::placeholders::bytes_transferred));

}

void connection::handle_write(const boost::system::error_code& error, std::size_t bytes_transferred)
{
    if(!error)
    {
    }
    else
    {

        handle_error(error);
    }
}


При передаче пакетов меньше 65535 код работает.
Если передаем больше в handle_write получаем ошибку:
10014: Система обнаружила недопустимый указатель адреса при попытке использовать в вызове аргумент указателя.

Если кто сталкивался - ткните плиз. Возможно код не корректный?

PM MAIL   Вверх
semensemenov
Дата 22.2.2011, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 16.2.2010

Репутация: нет
Всего: нет



Проблема решилась. Не правильно освобождалась память под data.

Это сообщение отредактировал(а) semensemenov - 22.2.2011, 12:38
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0553 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.