|
15 / 13 / 4
Регистрация: 23.08.2017
Сообщений: 187
|
||||||
Boost 1.67.0 ssl connect не получается сделать timeout 10sec13.07.2018, 20:16. Показов 7849. Ответов 38
Метки boost 1.67.0 asio ssl c++ (Все метки)
Не очень-то я сильна в библиотеке boost 1.67.0, от чего прошу помощи экспертов.
Спустя какое-то время, запрос ждет ответа от сервера бесконечно, из-за отсутствия связи и приходится перезапускать программу. Boost взяла по причине упростить написание кода. Но вот как выставить timeout если соединение отвалилось понять не могу Если можно как-то проще вставить этот кусочек кода в то что у меня уже есть.. Заранее огромное спасибо.
0
|
||||||
| 13.07.2018, 20:16 | |
|
Ответы с готовыми решениями:
38
Не получается достучаться до БД ORA-12170: TNS:Connect timeout occurred Зависание формы, как сделать timeout в connect() Socket.Connect() Timeout |
|
1378 / 522 / 72
Регистрация: 21.07.2015
Сообщений: 1,308
|
||
| 23.11.2018, 14:50 | ||
![]() Я не хочу спорить, просто намекну, что если потребуется делать что-то серьезное вроде сервера онлайн игры какой-нибудь, то синхронный вариант не взлетит. Вот первая статья на тему https://habr.com/post/150788/
0
|
||
|
15 / 13 / 4
Регистрация: 23.08.2017
Сообщений: 187
|
|||
| 23.11.2018, 14:54 [ТС] | |||
Про серьезных дядей зачем-то написали :-DДобавлено через 1 минуту
0
|
|||
|
1378 / 522 / 72
Регистрация: 21.07.2015
Сообщений: 1,308
|
|
| 23.11.2018, 15:02 | |
|
0
|
|
|
15 / 13 / 4
Регистрация: 23.08.2017
Сообщений: 187
|
|||||||
| 23.11.2018, 15:08 [ТС] | |||||||
|
Если убрать бесконечный цикл, то оно считает одну строку и завершится. И раз в 5-10 минут нужно отключаться от сокета, там такие правила. По этому я сделала break из него и потом по новой
0
|
|||||||
|
1378 / 522 / 72
Регистрация: 21.07.2015
Сообщений: 1,308
|
|
| 23.11.2018, 15:36 | |
|
Сделай для чтения из вебсокета аналогичную обертку, что я советовал для http, только в обработчике чтения аккумулируй данные, которые приходят, т.е. кидай новые запросы на чтения, пока не все пришли данные. io_service::run не отдаст управление пока у него есть активные задачи (таймер тоже нужно будет отменить).
Добавлено через 20 секунд Сделай для чтения из вебсокета аналогичную обертку, что я советовал для http, только в обработчике аккумулируй данные и настоятельно советую обрабатывать ошибки и on_close. Короче, добавляешь сюда таймер, оборачиваешь в отдельную функцию и получаешь свою синхронную функцию. https://www.boost.org/doc/libs... _async.cpp Добавлено через 13 минут Срач по теме https://svn.boost.org/trac10/ticket/2832
0
|
|
|
15 / 13 / 4
Регистрация: 23.08.2017
Сообщений: 187
|
|||
| 23.11.2018, 18:43 [ТС] | |||
![]() Sync IO without a timeout is something I can hardly imagine any sensible use case for." Вот и я о том же.
0
|
|||
|
15 / 13 / 4
Регистрация: 23.08.2017
Сообщений: 187
|
|
| 28.11.2018, 13:38 [ТС] | |
|
В итоге написала всё на чистом Си без лишних библиотек и результат производительности небо и земля. Вообще не понимаю зачем жертвовать производительностью ради удобства написания. Boost к сожалению оказался очень медленный по сравнению с моей реализацией для моей задачи. Теперь моя программа успевает сделать все 100% ставок. Кстати тот же curl быстрее реализует запросы чем boost. Кому интересно, сравните по таймеру. Там разница в 1.2-1.8ms получается. У меня же 0.00117ms сейчас. Хорошо что из буста ничего такого не добавляют в стандарт C++, а то он такими темпами будет похож на php по производительности. Единственный плюс, это наверное переносимость, и что для каждой платформы он оптимизирует код реализуя epoll, kqueue etc, ну это легко лечиться директивами. Ну для ленивых сойдет конечно
0
|
|
|
1378 / 522 / 72
Регистрация: 21.07.2015
Сообщений: 1,308
|
|
| 28.11.2018, 16:12 | |
|
Не надо списывать на Boost Asio проблемы, которые возникают от неправильного его использования. У меня на нем написан веб-сервер потоковой передачи видеотрансляций в реальном времени и почему-то никаких секундных задержек не замечаю.
0
|
|
|
15 / 13 / 4
Регистрация: 23.08.2017
Сообщений: 187
|
||
| 28.11.2018, 16:35 [ТС] | ||
|
Зачем вы спорите об очевидных вещах ? Вы совершенно не тот пример привели. У меня стаж c 12 лет, и я знаю о чем говорю поверьте на слово. Ради интереса посмотрите какой ужасный код генерирует компилятор когда в проекте участвует boost. У вас просто задачи проще. Веб-сервер я не считаю чем-то серьезным. Да и как вы сказали "секундные задержки" это было бы перебор даже для PHP )) Я писала поточный видео-сервер еще лет 5 назад, и производительность упиралась только в 100мб канал. Да и к тому же есть очень быстрый ffmpeg, ffserver etc что избавляет от необходимости использования этой вечно тестовой библиотеки как boost. Я вам так скажу, моя задача очень критична к времени обращения к сетевому протоколу. Я даже думаю реанимировать свою микроОС которую когда-то писала на ассемблере. В моем случае критично даже время общения с драйвером, мне в идеале нужно работать напрямую с памятью сетевой карты без драйвера- но это отдельная история. По этому для меня разница в производительности сразу заметна.
0
|
||
|
1378 / 522 / 72
Регистрация: 21.07.2015
Сообщений: 1,308
|
|||||||||||
| 28.11.2018, 21:40 | |||||||||||
|
0
|
|||||||||||
|
15 / 13 / 4
Регистрация: 23.08.2017
Сообщений: 187
|
||
| 28.11.2018, 21:45 [ТС] | ||
|
Мне достаточно того, что вам таймауты просто не нужны и сделала из этого определенный вывод, из чего спор с вами считаю избыточным. Вам можно больше не беспокоиться - заранее спасибо ![]() P.S Хотелось бы услышать профессионалов, относительно вопросу по теме.
0
|
||
|
1378 / 522 / 72
Регистрация: 21.07.2015
Сообщений: 1,308
|
|||
| 28.11.2018, 22:06 | |||
|
Добавлено через 4 минуты На самом деле ответ уже дан, причем не только тут, но и на других ресурсах. Добавлено через 10 минут Вы надеюсь понимаете разницу между "функции для таймаута не нужны" и просто "таймауты не нужны". Для гибкой реализации таймаутов используются таймеры, даже в примерах к документации https://github.com/boostorg/be... server.cpp. Применительно к Boost'у, да, таймеры не нужны, т.к. в нем просто иная архитектура.
0
|
|||
|
4 / 3 / 1
Регистрация: 28.11.2018
Сообщений: 4
|
||||
| 29.11.2018, 00:49 | ||||
Сообщение было отмечено helena_1990 как решение
РешениеДобавлено через 4 минуты Добавлено через 1 минуту
2
|
||||
|
1378 / 522 / 72
Регистрация: 21.07.2015
Сообщений: 1,308
|
|||
| 29.11.2018, 01:47 | |||
|
Добавлено через 12 минут Идея со своей ОС скорее всего сразу загнется на этапе чтения документации на сетевой чип. Тут очень много осеписателей, но лишь единицы из них смогли сделать хоть какой-то более-менее рабочий драйвер для современного железа. С сетевыми картами ситуация еще хуже: они не стандартизированы. Т.е. для SATA есть спецификация AHCI, для USB EHCI/xHCI, для звука HDA... А вот для сетевых карточек ничего нет, причем для многих документация вообще закрыта. Т.е. есть риск, что придется покупать специально карточку, под которую открыта документация на чип. Ну и конечно будет 100% привязка к ней. По скорости... если делать логику сразу в обработчике прерываний, то, возможно, будет и чуть быстрее для каких-то синтетических задач вроде "нужно быстро ответить". А вот что-то более-менее реальное так сделать не получится.
0
|
|||
|
15 / 13 / 4
Регистрация: 23.08.2017
Сообщений: 187
|
|||
| 29.11.2018, 02:51 [ТС] | |||
0
|
|||
|
0 / 0 / 0
Регистрация: 06.12.2018
Сообщений: 3
|
|||||||||||
| 06.12.2018, 14:00 | |||||||||||
|
А у меня тоже беда с boost но только с асинхронными websockets. Прошу сильно не ругать, это мой первый пост.
Постараюсь изложить мою мысль правильно. Я хочу подключиться к бирже и читать не прерывно котировки. Исходя из примера ссылка я подписываюсь на канал и слушаю. Я даже иногда вижу данные, но чаще вот такую ошибку "read: The WebSocket stream was gracefully closed at both endpoints". Программа завершается в любом случае, попали туда данные или нет. А мне нужно чтобы он читал не прерывно. Как мне такое сделать ? вот код компилирую на Debian так
0
|
|||||||||||
|
15 / 13 / 4
Регистрация: 23.08.2017
Сообщений: 187
|
||||||
| 07.12.2018, 12:35 [ТС] | ||||||
|
Если грубо, то примерно так. А вообще для бинанса boost подходит в случае долгой перспективы, а для скальпирования лучше что-то более быстрое. И разумеется пинг до биржи должен быть 0.3-0.5ms - а то всё это не будет иметь смысла.
1
|
||||||
|
0 / 0 / 0
Регистрация: 06.12.2018
Сообщений: 3
|
|
| 07.12.2018, 14:39 | |
|
helena_1990, Спасибо ты гений!
Добавлено через 3 минуты helena_1990, А не подскажешь кстати как сделать завершение, если обрыв соединения ?
0
|
|
|
15 / 13 / 4
Регистрация: 23.08.2017
Сообщений: 187
|
||
| 07.12.2018, 14:56 [ТС] | ||
|
1
|
||
| 07.12.2018, 14:56 | |
|
C++ | boost::asio + ssl? Не работает SSL в Boost Boost.asio ошибка в socket.connect Boost SSL ошибка линковки Boost + ssl Отправка почты с gmail.com Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности.
Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|