Я новичок в Boost asio. У меня запущена программа для пары клиентов на tcp-сервере, но когда я запускаю нового клиента, этот клиент также получает все старые записи. Я читаю / пишу с помощью async_read / async_write. Таким образом, сервер и клиент могли работать некоторое время и отправлять 100 пакетов назад и вперед. Когда я открываю второй клиент и получаю на нем, я получаю все 100 старых отправленных сервером пакетов! "localhost" используется для ip_address.
Есть ли какой-нибудь способ очистить буфер или что-то еще? Возможно, есть другой способ, кроме закрытия старого сокета и создания нового сокета?
Вызовы чтения / записи (не используются в этом порядке, просто скопированы оба вызова с того места, где я их использовал):
boost::array<char, 1024> buf;
boost::array<char, 1024> rbuf;
boost::asio::async_write(socket_,
boost::asio::buffer(buf.c_array(),
buf.size()),strand_.wrap(boost::bind(&async_tcp_client::handle_send_msg,
this,boost::asio::placeholders::error)));
boost::asio::async_read(socket_, boost::asio::buffer(rbuf.c_array(), rbuf.size()),
strand_.wrap(boost::bind(&async_tcp_client::handle_read,
this, boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred)));