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

Using Boost.Asio

Boost , Boost.Asio , Boost.Asio

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

Supported Platforms

Были протестированы следующие платформы и компиляторы:

  • Win32 и Win64 с использованием Visual C++ 7.1 и Visual C++ 8.0.
  • Win32 использует MinGW.
  • Win32 с использованием Cygwin.<__USE_W32_SOCKETS>
  • Linux (2.4 или 2.6 ядра) с использованием g++ 3.3 или более поздней версии.
  • Solaris использует g++ 3.3 или более поздние версии.
  • Mac OS X 10.4 с использованием g++ 3.3 или более поздних версий.

Также могут работать следующие платформы:

  • AIX 5.3 с использованием XL C/C++ v9.
  • HP-UX 11i v3 с использованием исправленного aC++ A.06.14.
  • QNX Neutrino 6.3 с использованием g++ 3.3 или более поздней версии.
  • Solaris использует Sun Studio 11 или более позднюю версию.
  • Tru64 v5.1 с использованием Compaq C++ v7.1.
  • Win32 с использованием Borland C++ 5.9.2

Dependencies

Следующие библиотеки должны быть доступны для связывания программ, использующих Boost. Асио:

  • Повышаю.<boost::system::error_code>и<boost::system::system_error>классы.
  • Регекс (необязательно), если вы используете любой из<read_until()>или<async_read_until()>перегрузок, которые принимают параметр<boost::regex>.
  • OpenSSL(необязательно), если вы используете Boost. Поддержка SSL Asio.

Кроме того, некоторые примеры также требуют увеличения. Подними, подними. Библиотеки Date_Time или Boost.Serialization.

[Note] Note

С MSVC или Borland C++ вы можете добавить<-DBOOST_DATE_TIME_NO_LIB>и<-DBOOST_REGEX_NO_LIB>в настройки вашего проекта, чтобы отключить автосвязь. Дата_время и повышение. Библиотеки Regex соответственно. Кроме того, вы можете создать эти библиотеки и ссылки на них.

Building Boost Libraries

Вы можете создать подмножество библиотек Boost, необходимых для использования Boost. Asio и его примеры, выполняя следующую команду из корня пакета загрузки Boost:

bjam --with-system --with-thread --with-date_time --with-regex --with-serialization stage

Это предполагает, что вы уже построили<bjam>. Проконсультируйтесь с Boost. Создайте документацию для более подробной информации.

Optional separate compilation

По умолчанию, Boost. Asio - это библиотека только для заголовков. Однако некоторые разработчики могут предпочесть строить Boost. Asio использует отдельно скомпилированный исходный код. Для этого добавьте<#include<boost/asio/impl/src.hpp>>к одному (и только одному) исходному файлу в программе, а затем создайте программу с<BOOST_ASIO_SEPARATE_COMPILATION>, определенной в настройках проекта/компилятора. В альтернативном варианте<BOOST_ASIO_DYN_LINK>может быть определено, чтобы построить отдельно компилируемый буст. Азио как часть общей библиотеки.

Если использовать Boost. Поддержка SSL Asio также требует добавления<#include<boost/asio/ssl/impl/src.hpp>>.

Macros

Макросы, перечисленные в таблице ниже, могут использоваться для контроля поведения Boost. Асио.

Макро

Описание

<BOOST_ASIO_ENABLE_BUFFER_DEBUGGING>

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

При использовании Microsoft Visual C++ этот макрос определяется автоматически, если включена поддержка отладки итератора компилятора, если только не определено<BOOST_ASIO_DISABLE_BUFFER_DEBUGGING>.

При использовании g++ этот макрос определяется автоматически, если включена стандартная отладка библиотеки<_GLIBCXX_DEBUG>, если не определено<BOOST_ASIO_DISABLE_BUFFER_DEBUGGING>.

<BOOST_ASIO_DISABLE_BUFFER_DEBUGGING>

Непреднамеренно отключает Boost. Поддержка отладки буфера Асио.

<BOOST_ASIO_DISABLE_DEV_POLL>

Явно отключает</dev/poll>поддержку на Solaris, вынуждая использовать реализацию на основе<select>.

<BOOST_ASIO_DISABLE_EPOLL>

Явно отключает<epoll>поддержку Linux, вынуждая использовать реализацию на основе<select>.

<BOOST_ASIO_DISABLE_EVENTFD>

Явно отключает<eventfd>поддержку Linux, заставляя использовать трубу для прерывания заблокированных вызовов системы epoll/select.

<BOOST_ASIO_DISABLE_KQUEUE>

Явно отключает<kqueue>поддержку на вариантах Mac OS X и BSD, вынуждая использовать реализацию на основе<select>.

<BOOST_ASIO_DISABLE_IOCP>

Явно отключает поддержку портов завершения ввода/вывода в Windows, вынуждая использовать реализацию на основе<select>.

<BOOST_ASIO_DISABLE_THREADS>

Непосредственно отключает Boost. Поддержка потоков Asio, независимо от того, поддерживает ли Boost в целом потоки.

<BOOST_ASIO_NO_WIN32_LEAN_AND_MEAN>

По умолчанию, Boost. Asio автоматически определяет<WIN32_LEAN_AND_MEAN>при компиляции для Windows, чтобы минимизировать количество файлов заголовков Windows SDK и включенных функций. Присутствие<BOOST_ASIO_NO_WIN32_LEAN_AND_MEAN>препятствует<WIN32_LEAN_AND_MEAN>определению.

<BOOST_ASIO_NO_NOMINMAX>

По умолчанию, Boost. Asio автоматически определяет<NOMINMAX>при компиляции для Windows, чтобы подавить определение<min()>и<max()>макросов. Присутствие<BOOST_ASIO_NO_NOMINMAX>препятствует<NOMINMAX>определению.

<BOOST_ASIO_NO_DEFAULT_LINKED_LIBS>

При компиляции для Windows с использованием Microsoft Visual C++ или Borland C++, Boost. Asio автоматически подключается к необходимым библиотекам Windows SDK для поддержки сокетов (например,<ws2_32.lib>и<mswsock.lib>или<ws2.lib>при создании Windows CE). Макро<BOOST_ASIO_NO_DEFAULT_LINKED_LIBS>не позволяет связать эти библиотеки.

<BOOST_ASIO_SOCKET_STREAMBUF_MAX_ARITY>

Определяет максимальное количество аргументов, которые могут быть переданы в<basic_socket_streambuf>шаблон классов<connect>функции члена. Недостатки 5.

<BOOST_ASIO_SOCKET_IOSTREAM_MAX_ARITY>

Определяет максимальное количество аргументов, которые могут быть переданы конструктору шаблона<basic_socket_iostream>класса и<connect>функции члена. Недостатки 5.

<BOOST_ASIO_ENABLE_CANCELIO>

Позволяет использовать функцию<CancelIo>в старых версиях Windows. Если не включить, вызовы<cancel()>на объекте розетки всегда будут выходить из строя с<asio::error::operation_not_supported>при запуске на Windows XP, Windows Server 2003 и более ранних версиях Windows. При работе с Windows Vista, Windows Server 2008 и более поздней версией всегда используется функция<CancelIoEx>.

Функция<CancelIo>имеет две проблемы, которые следует рассмотреть, прежде чем разрешить ее использование:

* Она будет отменять только асинхронные операции, которые были инициированы в текущем потоке.

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

Для переносимого аннулирования рассмотрите возможность использования одной из следующих альтернатив:

* Отключить сервер завершения ввода/вывода Asio, определив BOOST_ASIO_DISABLE_IOCP.

* Используйте функцию закрытия объекта разъема, чтобы одновременно отменить выдающиеся операции и закрыть разъем.

<BOOST_ASIO_NO_TYPEID>

Использование оператора<typeid>в Boost. Определяется автоматически, если<BOOST_NO_TYPEID>определено.

<BOOST_ASIO_HASH_MAP_BUCKETS>

Определяет количество ведер в Росте. Внутренние объекты Асио<hash_map>. Значение должно быть запятой, разделенным списком простых чисел, в порядке возрастания. Реализация<hash_map>автоматически увеличит количество ведер по мере увеличения количества элементов на карте.

Некоторые примеры:

* Определение<BOOST_ASIO_HASH_MAP_BUCKETS>до<1021>означает, что<hash_map>объекты всегда будут содержать 1021 ведер, независимо от количества элементов на карте.

* Определение<BOOST_ASIO_HASH_MAP_BUCKETS>до<53,389,1543>означает, что<hash_map>объекты первоначально будут содержать 53 ведра. Количество ведер будет увеличено до 389, а затем до 1543 по мере добавления элементов на карту.

Mailing List

Список рассылки специально для Boost. Азио можно найти наSourceForge.net. Доступ к новостной группе осуществляется черезGmane.

Wiki

Пользователям рекомендуется делиться примерами, советами и часто задаваемыми вопросами на Boost. Asio wiki, который находится по адресуhttp://think-async.com/Asio/.


PrevUpHomeNext

Статья Using Boost.Asio раздела Boost.Asio Boost.Asio может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Boost.Asio ::


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 02:20:14/0.0059118270874023/0