Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Streams, Short Reads and Short Writes

Boost , Boost.Asio , Core Concepts and Functionality

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Многие объекты ввода-вывода в Boost. Asio ориентированы на поток. Это означает, что:

  • Нет никаких границ сообщений. Передаваемые данные представляют собой непрерывную последовательность байтов.
  • Операции чтения или записи могут передавать меньше байтов, чем запрашивалось. Это называется коротким чтением или коротким письмом.

Объекты, которые обеспечивают ориентированную на поток модель ввода/вывода, один или несколько из следующих типов требований:

  • SyncReadStream, где синхронные операции чтения выполняются с использованием функции члена, называемойread_some().
  • AsyncReadStream, где асинхронные операции считывания выполняются с использованием функции члена, называемойasync_read_some().
  • SyncWriteStream, где синхронные операции записи выполняются с использованием функции члена, называемойwrite_some().
  • AsyncWriteStream, где синхронные операции записи выполняются с использованием функции члена, называемойasync_write_some().

Примеры ориентированных на поток объектов ввода/вывода включаютip::tcp::разъем,ssl::поток<>,posix::поток_дескриптор,окна::stream_handleи т.д.

Программы обычно хотят передать точное количество байтов. Когда происходит короткое чтение или короткая запись, программа должна перезапустить операцию и продолжать делать это до тех пор, пока не будет передано необходимое количество байтов. Повышаю. Asio предоставляет общие функции, которые делают это автоматически:читать(),async_read(),писать()иasync_write().

Why EOF is an Error
  • Конец потока может заставитьчитать,async_read,читать_untilилиasync_read_untilфункции нарушать их контракт. Например, чтение N байтов может закончиться раньше из-за EOF.
  • Ошибка EOF может быть использована, чтобы отличить конец потока от успешного чтения размера 0.
See Also

async_read(),async_write(),read(),write(),AsyncReadStream,AsyncWriteStream,SyncReadStream,SyncWriteStream.


PrevUpHomeNext

Статья Streams, Short Reads and Short Writes раздела Boost.Asio Core Concepts and Functionality может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Core Concepts and Functionality ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 18:09:05/0.0066370964050293/0