Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.08.2019, 14:29   #11
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Сообщение от Android1 Посмотреть сообщение
Это, как я понимаю функция для кол бэка ?
Я думал вы об этом узнали уже давно.

Цитата:
Сообщение от Android1 Посмотреть сообщение
Если да, то получается, что в эту функцию передается по ссылке &err и endpoint_iterator(только как, по значени?), но ведь чтобы передать, что то в функцию это сначало нужно создать/обьявить.
Угу

Цитата:
Сообщение от Android1 Посмотреть сообщение
А не err, не endpoint_itetator не созданы, как тогда они передаются ?
И список результатов не создан, но волшебным образом появляется. Магия... не иначе.
p51x вне форума Ответить с цитированием
Старый 05.08.2019, 17:39   #12
Android1
Форумчанин
 
Регистрация: 26.08.2010
Сообщений: 121
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Магия... не иначе.
А как она действует ?
Android1 вне форума Ответить с цитированием
Старый 05.08.2019, 17:54   #13
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Мдя... Тему пора переименовывать в азы асинхронности.

Начнем с простого:
1. Вы можете написать функции, которые считают сумму элементов массива и произведение элементов массива?
2. Вы осознаете, что по сути это одна и таже функция с кодом типа
Код:
  for i = 0 to len do ...
?
3. Т.е. если мы передадим в эту функцию другую функцию, которая будет суммировать/перемножать результат и элемент, то различия вообще сотрутся?

Теперь по вашим вопросам. Можете ответить на них сами:
Есть функция с кодом:
Код:
int x[] = { 1, 2, 3, 4, 5 };
for i = 0 to len
  f(x[i]);
Вы же x не создавали и не объявляли, какая ж магия его отдала функции f?
p51x вне форума Ответить с цитированием
Старый 05.08.2019, 19:07   #14
Android1
Форумчанин
 
Регистрация: 26.08.2010
Сообщений: 121
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
1. Вы можете написать функции, которые считают сумму элементов массива и произведение элементов массива?
Вы имеете ввиду, что то типа такого:
Код:
void(int &summ_func, int &umnozh_func, int &x_func)
{
summ_func=0;
umnozh_func=0
for(int i=0; i<x_func.size(); i++);
{
summ_func = summ_func + x_func[i];
umnozh_func=umnozh_func*x_func[i];
}

int main()
{
int x[] = { 1, 2, 3, 4, 5 };
int sum;
int umnozh;

Func(sum,umnozh,x);
}
Или какая то математическая функция ?
Цитата:
Сообщение от p51x Посмотреть сообщение
Есть функция с кодом:
Код:
int x[] = { 1, 2, 3, 4, 5 };
for i = 0 to len
  f(x[i]);
Вы же x не создавали и не объявляли, какая ж магия его отдала функции f?
Но массив x-ов то обьявлен же.
Android1 вне форума Ответить с цитированием
Старый 05.08.2019, 19:48   #15
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Тут до асинхронности программировании вообщем надо заниматься...

Цитата:
Сообщение от Android1 Посмотреть сообщение
Вы имеете ввиду, что то типа такого
Нет. Я же вам написал тело функции:
Код:
void MyFunc(Callable f)
{
  int x[] = { 1, 2, 3, 4, 5 };
  int S = 0;
  for(i = 0; i < 5; ++i)
    f(S, x[i]);
}
Цитата:
Сообщение от Android1 Посмотреть сообщение
Но массив x-ов то обьявлен же.
Так ошибка, список результатов и, естественно, итератор для нео тоже...
p51x вне форума Ответить с цитированием
Старый 06.08.2019, 17:36   #16
Android1
Форумчанин
 
Регистрация: 26.08.2010
Сообщений: 121
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Так ошибка, список результатов и, естественно, итератор для нео тоже...
Так где ? Не обьявлено же это все, только в функцию передается.
Android1 вне форума Ответить с цитированием
Старый 06.08.2019, 17:52   #17
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Вы прикидыватесь? У вас и cin, cout не объвлены и работают. Экзекьютер запускает поток на задачу, в этом потоке выполняется код, в нем создается список и возвращается вам.
p51x вне форума Ответить с цитированием
Старый 07.08.2019, 20:58   #18
Android1
Форумчанин
 
Регистрация: 26.08.2010
Сообщений: 121
По умолчанию

В том примере по async_client есть такой комментарий:
Код:
// Form the request. We specify the "Connection: close" header so that the
// server will close the socket after transmitting the response. This will
// allow us to treat all data up until the EOF as the content.
То есть, что бы async_read смог прочитать данные, нужно дождаться конца потока, а для этого сервер должен разорвать соединение, а как тогда читаются данные, которые передаются по постоянному соединению с сервером, ну там по типу использования ajax на стороне клиента ?
Android1 вне форума Ответить с цитированием
Старый 07.08.2019, 21:05   #19
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Сообщение от Android1 Посмотреть сообщение
То есть, что бы async_read смог прочитать данные, нужно дождаться конца потока
Нет. Не нужно.

Цитата:
Сообщение от Android1 Посмотреть сообщение
а для этого сервер должен разорвать соединение
Не должен.

Цитата:
Сообщение от Android1 Посмотреть сообщение
а как тогда читаются данные, которые передаются по постоянному соединению с сервером, ну там по типу использования ajax на стороне клиента ?
Так же как вы читаете из fstream
p51x вне форума Ответить с цитированием
Старый 07.08.2019, 22:27   #20
Android1
Форумчанин
 
Регистрация: 26.08.2010
Сообщений: 121
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Нет. Не нужно.
А по какому критерию тогда async_read закончит свое чтение ?
Android1 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[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