Увеличить asio multi-сокет async_читать неверные данные
Клиент: многосетевая конструкция из одного io_service
в потоке.
Сервер: многосетевая конструкция из другого io_service
в другой теме.
Сообщение об ошибке:
Read wrong data
в то время как сервер async_read
размер буфера больше клиентского async_write
размер буфера
даже установить async_read CompletionCondition
size_t ServerUploadJob::remainBufSize(const boost::system::error_code& error, size_t transferred)
{
if (error)
return 0;
auto header = (MessageHeader*)buf.data();
if (header->magic == MESSAGE_HEADER_TAG) {
if (transferred < sizeof(MessageHeader))
return int(sizeof(MessageHeader) - transferred);
else if (transferred < header->messageSize)
return int(header->messageSize - transferred);
else
return 0;
}
return boost::asio::detail::default_max_transfer_size;
}