Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > C/C++ Сетевое программирование
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 23.09.2019, 21:22   #61
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,095
По умолчанию

И как он из одного указателя узнает размер? Вы хотя бы смотрите какие конструкторы есть.
Запомните раз и навсегда: помочь != "решите за меня"!
p51x вне форума   Ответить с цитированием
Старый 23.09.2019, 21:58   #62
Android1
Форумчанин
 
Регистрация: 26.08.2010
Сообщений: 100
По умолчанию

Прошу прощенья.
Спасибо!
Добавил размер, заработало:
Код:
char *buff;
buff = new char[1];
buff[0]='f';

boost::asio::write(socket, boost::asio::buffer(buff, 1));
Android1 вне форума   Ответить с цитированием
Старый 25.09.2019, 15:34   #63
Android1
Форумчанин
 
Регистрация: 26.08.2010
Сообщений: 100
По умолчанию

А чем принципиально отличается использование следуюших строчек кода:

Код:
async_read(socket, buffer(data), ec);
...
io_service.run();
То есть асиннхронный read.
От:
Код:
void boost_read(&socket)
{
read(socket, buffer, ec);
}

main()
{
future<void> read = async(launch::async, boost_read, move(socket));
...
read.get()
}
То есть синхронный read отправляем в асинхронный std async.

Есть ли между этими случаяси принципиальная разница ?
Android1 вне форума   Ответить с цитированием
Старый 25.09.2019, 16:02   #64
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,095
По умолчанию

1. Где будет "работать" асинхронная операция
2. Будет ли вызван коллбек или вам самим надо проверять и дожидаться
3. Внутреннее состояние io_service
Запомните раз и навсегда: помочь != "решите за меня"!
p51x вне форума   Ответить с цитированием
Старый 25.09.2019, 16:18   #65
Android1
Форумчанин
 
Регистрация: 26.08.2010
Сообщений: 100
По умолчанию

1. Если я правильно понял, работать будет в функции.
2. Грубо, дожидатся в read.get()
3. Не понял к сожалению.
Android1 вне форума   Ответить с цитированием
Старый 25.09.2019, 16:28   #66
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,095
По умолчанию

Это были не вопросы...
Запомните раз и навсегда: помочь != "решите за меня"!
p51x вне форума   Ответить с цитированием
Старый 25.09.2019, 17:11   #67
Android1
Форумчанин
 
Регистрация: 26.08.2010
Сообщений: 100
По умолчанию

А что значит, где будет работать ? А где может работать ?
Android1 вне форума   Ответить с цитированием
Старый 25.09.2019, 17:12   #68
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,095
По умолчанию

https://en.cppreference.com/w/cpp/thread/async
Цитата:
The template function async runs the function f asynchronously (potentially in a separate thread which may be part of a thread pool)
Запомните раз и навсегда: помочь != "решите за меня"!
p51x вне форума   Ответить с цитированием
Старый 25.09.2019, 18:18   #69
Android1
Форумчанин
 
Регистрация: 26.08.2010
Сообщений: 100
По умолчанию

А для boost async_ read отдельный поток не выделяется ?
Android1 вне форума   Ответить с цитированием
Ответ
Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Boost] ASIO Buffer S.Ruslan C/C++ Сетевое программирование 7 25.03.2019 14: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 17:27
Boost (asio + thread) - noncopyable MInner Общие вопросы C/C++ 1 06.12.2009 17:41