|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
12.08.2019, 13:46 | #31 |
Форумчанин
Регистрация: 26.08.2010
Сообщений: 121
|
|
12.08.2019, 14:31 | #32 |
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772
|
И что, производительность не устраивает?
|
12.08.2019, 14:37 | #33 |
Форумчанин
Регистрация: 26.08.2010
Сообщений: 121
|
Устраивает но и тут есть нюанс, к примеру если делать http запрос на сервер, и к примеру не указать connection close, то операция read ждет пока сервер закроет соединение, а значит все это время стпочка read заблокирована.
Но, я как бы и не из за этого, просто если есть асинхронные операции, наверное надо их использовать. |
12.08.2019, 14:39 | #34 |
Форумчанин
Регистрация: 26.08.2010
Сообщений: 121
|
|
12.08.2019, 20:32 | #35 |
Форумчанин
Регистрация: 26.08.2010
Сообщений: 121
|
Подскажите, а как из main`а получить значения, которые вызвались в хэндлере ?
|
12.08.2019, 21:31 | #36 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,760
|
Будет
Зачем они вам там? Вы опять мыслите в синхронном коде? Но если надо используйте примитивы синхронизации и другие стандартные способы для общения потоков. |
12.08.2019, 22:14 | #37 |
Форумчанин
Регистрация: 26.08.2010
Сообщений: 121
|
|
14.08.2019, 08:52 | #38 |
Форумчанин
Регистрация: 26.08.2010
Сообщений: 121
|
А все таки, как синхронная функция read понимает, что чтение закончено и что можно пеоеходить к следующей строчке кода ?
С read_until понятно оно читает до определенного символа или набора символов. Но как read то понимает ? Все таки, что бы read зааершило мвою работу сл стлрлны сервера соединение должно быть или уничтожено или за shutdown'нино ? Если так, то не могу хотя бы примерно понять, как тогда клиент поддерживает постоянный прием и чтение данных от сервера пл постоянному keepalive соединению. |
14.08.2019, 09:07 | #39 | ||
Старожил
Регистрация: 15.02.2010
Сообщений: 15,760
|
Цитата:
Цитата:
Записали, почитали кусок, попарсили, дальше читаем или пишем... |
||
14.08.2019, 10:47 | #40 | |
Форумчанин
Регистрация: 26.08.2010
Сообщений: 121
|
Цитата:
https://www.boost.org/doc/libs/1_66_...ence/read.html То есть условие завершения read это или заполненость нужного буфера или ошибка, но естественно, я не могу знать заранее размер буффера, или ждать пока наступить ошибка, ну к примеру та самая eof потока. Но дело даже не в этом: Предположим есть сервер, который по keepalive выдает данные раз в секунду, ну к примеру температуру на улице, то есть write'ом я послал запрос, read'ом прочитал ответ на запрос и записал в предоставленный ему streambuf, но read не заверршается, так как сервер держит соединение активным, через секунду сервер шлет еще данные, еще через секунду еще итд, то есть функция read работает, данные пишутся в буффер, но достать данные из буффера я могу только после завершение функции read, а не во время его выполнения. Вот чего неронятно. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[Boost] ASIO Buffer | S.Ruslan | C/C++ Сетевое программирование | 7 | 25.03.2019 13:34 |
boost/asio | MayhemWithMercy | C/C++ Сетевое программирование | 1 | 11.06.2014 17:44 |
boost ASIO сериализация | Kukurudza | Общие вопросы C/C++ | 2 | 06.12.2011 13:38 |
Boost::Asio on Mingw | russian-stalker | Общие вопросы C/C++ | 0 | 05.01.2011 16:27 |
Boost (asio + thread) - noncopyable | MInner | Общие вопросы C/C++ | 1 | 06.12.2009 16:41 |