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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Boost.Asio tcp async read, неожиданный eof при чтении 
V
    Опции темы
Леопольд
Дата 16.8.2011, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Sun Solaris 5.10
gcc version 4.3.4 (GCC)
Постоянно получаю eof при чтении из сокета async_read_some, вперемешку с нормальными данными. Этот же код нормально работает пол линухом и виндой. В чём может быть проблема?
Код
static std::size_t dummy = 0;
std::cout << dummy << std::endl;
        using namespace boost::posix_time;
        if (dummy++ < 100)
    //if (!error && bytesReceived > 0)
        {
            counters.receivedTraffic += bytesReceived;
            handleTraffic_(data_.get(), data_.get() + bytesReceived);

            socket_.async_read_some(boost::asio::buffer(data_.get(), settings.udpMaxPacketLen),
                boost::bind(&TcpTicketReceivingClient::handleReceive_, this,
                    boost::asio::placeholders::error,
                    boost::asio::placeholders::bytes_transferred));
        }
        else if(error)
        {
std::cout << "error =" << error << ":" << error.message() << " :received bytes = " << bytesReceived << std::endl;
            socket_.close();
            connectionTimer_.expires_from_now(boost::posix_time::seconds(settings.tcpReconnectTmo));
            connectionTimer_.async_wait(boost::bind(&TcpTicketReceivingClient::reconnect_, this));
        }


Код
0
1
...
100
error =asio.misc:2:End of file :received bytes = 0


Это сообщение отредактировал(а) Леопольд - 16.8.2011, 13:11


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
Леопольд
Дата 16.8.2011, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Всё дело оказалось в реконнекте по таймеру. Надо закрывать сокет перед повторным коннектом...


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


 




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


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

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