Почему boost async_connect не вызывает мой обратный вызов?C++

Программы на C++. Форум разработчиков
Ответить
Гость
 Почему boost async_connect не вызывает мой обратный вызов?

Сообщение Гость »


Я пытаюсь реализовать своего рода клиент протокола системного журнала в boost asio. Мне удалось создать асинхронную версию UDP, и я пытаюсь разработать версию TCP, но застрял. Я использовал WinSyslog и Debian rsyslog в качестве сервера, а Wireshark — для управления потоком данных.

Я написал класс TcpConnection и подготовил для него тестовые данные. Я использую TCP-сокет Boost Asio и ожидаю, что пакет будет отправлен с использованием обработчиков подключения и отправки, но обработчик подключения не был вызван.

Моя реализация:

класс TcpConnection , public boost::enable_shared_from_this { публика: TcpConnection( boost::asio::io_service& io_service, uint32_t, порт uint16_t) : m_socket(io_service) , m_ep(boost::asio::ip::address_v4(to), порт) { m_socket.open(boost::asio::ip::tcp::v4()); } void SendMessageAsync(const boost::asio::const_buffer& message) переопределить { /* boost::system::error_code ec; m_socket.connect(m_ep, ec); m_socket.send(сообщение, 0, ec);*/ m_socket.async_connect(m_ep, boost::bind(&TcpConnection::HandleConnect,shared_from_this(), boost::asio::placeholders::error, message)); } частный: void HandleConnect (boost::system::error_code const& ec, const boost::asio::const_buffer& message) { если (!ec) { ec.сообщение(); } еще { m_socket.async_send(сообщение, boost::bind(&TcpConnection::HandleWritten,shared_from_this(), boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred)); } } void HandleWritten (boost::system::error_code const& ec, size_t bytes_transferred) { если (!ec) { EKA_TRACE_ERROR()
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»