Pull to refresh

Comments 13

Я хочу начать вольный перевод книги

Где-то я это уже видел :)

Спасибо за перевод! Надеюсь у вас хватит сил дойти до конца в этом трудном деле!
Хороший перевод. Правда как то сумбурно описана ситуация 3. Даже зная что там происходит, только со второго раза понял написанное.

Мое скромное имхо по поводу Boost: все хорошо кроме случаев когда нужны операции с таймаутами. Через ихние дедлайн таймеры это просто пипец. Вот нет бы просто в async_read/write/что_там_еще передать timeout и при его истечении в обработчике получить соответствующую ошибку (как например при потери соединения).
Спасибо большое за работу! Надеюсь увидеть остальные главы!
C COM портами и Asio у меня были проблемы. Он непредсказуемо разбивал входящие данные, пришедшие непрерывно, на куски. Это мешало работать с Modbus, у которого начало пакета детектится по времени между пакетами. После перехода на другую библиотеку, фактически Win API, заработало нормально.
Это не asio их разбивал, это их компорт так отдавал. Это нормальное поведение для COM порта на сколько я знаю. Я так же с ним работал. В начале я побайтно читал находя начало сообщения (синхронизовывал) а потом X байт за раз. Мне повезло у меня длина сообщения однозначно определялась в начале пакета данных.
Мне также пришлось поработать с COM портом и использовал я именно Asio. Читал побайтно до конца сообщения, так как точно знал символ конца сообщения. Все прекрасно работает и по сей день.
Автор, вот энто:

Try
{

}
catch ( boost::system::system_error e)
{
// handle the error
}

Заменить следующим:

try
{

}
catch ( boost::system::system_error &e)
{
// handle the error
}
Здравствуйте, господа — знатоки boost::asio!

Подскажите, умеет ли boost::asio слушать через определенный сетевой интерфейс? И умеет ли boost::asio коннектиться к удаленному интерфейсу через заданный локальный сетевой интерфейс? Если конечно этих интерфейсов несколько.

Если да, то краткий пример кода-намёк, если не трудно.

Спасибо!
Благодарю за перевод. Не могу однако не выразить обеспокоенность легальностью таких переводов.

socket: классы сокетов не являются потоко-безопасными.
Таким образом вам следует избегать таких ситуаций как читать из сокета в
одном потоке, а писать в него в другом (это рекомендуется вообще, не
говоря уже о Boost.Asio).

Точно рекомендуется?)

Рекомендуется избегать — вроде все правильно.

Точно) просто прочитал так, что "рекомендуется читать из сокета в одном потоке, а писать в него в другом".

Sign up to leave a comment.

Articles