Just learn boost::asio