Re[4]: Сокеты и многопоточность
От: smeeld  
Дата: 04.08.16 20:15
Оценка:
Здравствуйте, b0r3d0m, Вы писали:


B>никак не говорит о том, как реализован конкретно boost::asio::ip::tcp::socket, и какие требования накладывает на своё использование в результате этого. Он может как требовать синхронизации, так и не требовать -- всё зависит от того, как автор(ы) библиотеки подошли к данному вопросу.


Никак он не реализован, это просто ООП-врайпер над сокетами libc. Упомянутый async_write-это обыкновенный write в неблокирующий дескриптор сокета, тот самый что выдаётся POSIX функцией socket (или что там в винде вместо этого), и последующий мониторинг событий на этом сокете в потоке io_service::run разными реакторами в зависимости от ОС. Это лиуксовый реактор, обратите внимание на метод start_op, через этот метод реализованы все функции работы с сокетами различных типов в asio. Все правила работы с POSIX сокетами и из свойства естественным образом переносятся на сокеты в boost::asio.
Отредактировано 04.08.2016 20:23 smeeld . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.