Boost::ASIO löst mehrere Adressen aufC++

Programme in C++. Entwicklerforum
Guest
 Boost::ASIO löst mehrere Adressen auf

Post by Guest »

Ich habe einige Probleme beim Auflösen mehrerer Adressen mit Boost::ASIO. Ich kann async_resolve einmal aufrufen, einen Endpunkt abrufen und ohne Probleme eine Verbindung zu ihm herstellen. Aber wenn ich async_resolve zu einem späteren Zeitpunkt erneut aufrufen möchte, bleibt async_resolve für immer hängen und ruft nie meinen Event-Handler auf.
Gibt es eine Möglichkeit, das vorherige async_resolve zu beenden oder zu schließen? Oder ist es etwas anderes?

Code: Select all

hostResolver = new boost::asio::ip::tcp::resolver(*internalEventPump->getIoService());

hostResolver->async_resolve(boost::asio::ip::tcp::v4(), hostName, portString,
boost::bind(&DTcpSocket::resolveFinished, this, boost::asio::placeholders::error, boost::asio::placeholders::iterator));
...

Code: Select all

void DTcpSocket::resolveFinished(const boost::system::error_code &errorCode,
boost::asio::ip::tcp::resolver::iterator iterator)
{
endPointIter = iterator;

if (errorCode)
{
errMsg = "Couldn't resolve hostname: " + errorCode.message();
connectionHandler(errMsg, DA_HOSTNAME_ERROR);
}
else
{
boost::asio::ip::tcp::endpoint endpoint = *endPointIter;
cout

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post