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

UNIX Domain Sockets

Boost , Boost.Asio , POSIX-Specific 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

Повышаю. Asio обеспечивает базовую поддержку сокетов домена UNIX (также известных как локальные сокеты). Самое простое использование включает в себя создание пары подключенных розеток. Следующий код:

local::stream_protocol::socket socket1(my_io_service);
local::stream_protocol::socket socket2(my_io_service);
local::connect_pair(socket1, socket2);

Будет создана пара ориентированных на поток сокетов. Чтобы сделать то же самое для сокетов, ориентированных на дейтаграммы, используйте:

local::datagram_protocol::socket socket1(my_io_service);
local::datagram_protocol::socket socket2(my_io_service);
local::connect_pair(socket1, socket2);

Сервер сокета домена UNIX может быть создан путем связывания акцептора с конечной точкой, во многом так же, как это делается для сервера TCP:

::unlink("/tmp/foobar"); // Remove previous binding.
local::stream_protocol::endpoint ep("/tmp/foobar");
local::stream_protocol::acceptor acceptor(my_io_service, ep);
local::stream_protocol::socket socket(my_io_service);
acceptor.accept(socket);

Клиент, который подключается к этому серверу, может выглядеть так:

local::stream_protocol::endpoint ep("/tmp/foobar");
local::stream_protocol::socket socket(my_io_service);
socket.connect(ep);

Передача файловых дескрипторов или учетных данных через разъемы домена UNIX напрямую не поддерживается в Boost. Asio, но может быть достигнута путем доступа к базовому дескриптору гнезда с помощьюnative_handle()Функция члена.

See Also

Местный::connect_pair,местный::datagram_protocol,local::datagram_protocol::endpoint,local::datagram_protocol::socket,local::stream_protocol,local::stream_protocol::acceptor,local::stream_protocol::endpoint,local::stream_protocol::iostream,local::stream_protocol::socketПримеры сокетов домена UNIX.

Notes

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


PrevUpHomeNext

Статья UNIX Domain Sockets раздела Boost.Asio POSIX-Specific Functionality может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: POSIX-Specific Functionality ::


реклама


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

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