Пытаюсь сделать простой tcp клиент с использованием этой библиотеки. Задействовал таймер asio::steady_timer, использую его асинхронно. Проблема в том, что в момент вызова его конструктора (в который передается asio::io_service&) бросается исключение с кодом 10045 WSAEOPNOTSUPP. Пробовал при сборке передать дефайн ASIO_DISABLE_IOCP. Падать перестал, но работает как-то странно. Вызывается колбэк с ошибкой: 995 ERROR_OPERATION_ABORTED.
Использую MinGW 4.9.3. Передаю дефайны: _WIN32 _WIN32_WINNT=0x0601 ASIO_STANDALONE ASIO_DISABLE_IOCP.
asio::steady_timer m_deadline;
void AsyncTcpClient::setTimer()
{
using namespace std::placeholders;
m_deadline.expires_from_now(std::chrono::milliseconds(m_timeout) );
m_deadline.async_wait([this](const asio::error_code& e){ timeout_callback(e); });
}
void AsyncTcpClient::timeout_callback(const asio::error_code& e)
{
std::string m = e.message();
if (!e)
{
m_socket.cancel();
}
else
{
failed("Timer failed");
}
}
В чем может быть проблема?