Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Сети > boost::asio


Автор: pan2004 15.6.2008, 18:35
Какие различия между такими boost::asio функциями как:
socket::async_read_some
socket::async_receive
asio::async_read?
Когда какую использовать?

Автор: Lazin 15.6.2008, 19:14
насколько я понял различий нет, насчет socket::async_read_some не уверен, а вот остальные делают одно и то-же...

Автор: pan2004 15.6.2008, 19:31
Цитата(Lazin @  15.6.2008,  19:14 Найти цитируемый пост)
насколько я понял различий нет, насчет socket::async_read_some не уверен, а вот остальные делают одно и то-же...

В http://www.boost.org/doc/libs/1_35_0/doc/html/boost_asio/reference/basic_stream_socket/async_read_some.html написано(по первым двум функциям):
Цитата
Remarks 

The read operation may not read all of the requested number of bytes. Consider using the async_read function if you need to ensure that the requested amount of data is read before the asynchronous operation completes.

Чтобы это значило? Что за "requested number of bytes" в этом контексте?

Автор: fish9370 15.6.2008, 19:54
Цитата(pan2004 @  15.6.2008,  19:31 Найти цитируемый пост)

Remarks

The read operation may not read all of the requested number of bytes. Consider using the async_read function if you need to ensure that the requested amount of data is read before the asynchronous operation completes.


Цитата

Примечания

Операция чтения (операция read) может не прочесть всё запрашиваемое количество байт. Расматривайте использование функции async_read, если вам нужно быть увереным, что запрашиваемое количество данных прочтено, до того как асинхронная операция завершится.

Автор: pan2004 15.6.2008, 20:06
Цитата(fish9370 @  15.6.2008,  19:54 Найти цитируемый пост)
ПримечанияОперация чтения (операция read) может не прочесть всё запрашиваемое количество байт. Расматривайте использование функции async_read, если вам нужно быть увереным, что запрашиваемое количество данных прочтено, до того как асинхронная операция завершится.

Я знаю англ., но все равно спасибо  smile 
Вопрос так и остается открытым: что за "запрашиваемое количество байт"? Ведь я в этих функциях нигде явно не задаю то количество байт, что хочу прочитать. Максимум - в функцию передается буффер ного размера, так что, async_read будет ждать полного заполнения этого буффера, прежде чем вызвать хандлер? Или здесь говорится о чем то другом?

Автор: pan2004 12.7.2008, 18:14
up

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)