Я хочу знать механизм boost :: asio - PullRequest
0 голосов
/ 21 мая 2018

Я использую boost::asio для создания сервера.Но я хочу знать механизм Асио.Давайте начнем с некоторого псевдокода:

Псевдокод (сервер)

async_read_some(MY::read1);

MY::read1() {
    async_read_some(MY::read1);
    async_write(someData);  // someData : "ABCD"
}

Сценарий

  • клиент:

    1. отправка данных на сервер.

    2. отправка данных на сервер. (Данные еще не получены).

    3. извлечение данных с сервера.

    Теперь я переживаю, что полученные данные микшируются с сервера.

    • Ожидается: "ABCD" "ABCD"

    • неправильно: "AABBCDCD"

Вопрос

Я знаю, что функция async_write гарантированно будет в порядке.

Таким образом, содержимое пакетов смешано?

Обновление:

Это правильно?

async_read_some(MY::read1);

MY::read1() {
    async_write(someData, MY::write1);  // someData : "ABCD"
}

MY::write1() {
    async_read_some(MY::read1);
}
...