diff --git a/src/WHISPER/InternalUDPListener.cpp b/src/WHISPER/InternalUDPListener.cpp index 4b9b7b9..cf41680 100644 --- a/src/WHISPER/InternalUDPListener.cpp +++ b/src/WHISPER/InternalUDPListener.cpp @@ -60,7 +60,7 @@ void InternalUDPListener::connect() receiverSocket_ = std::make_shared(ctx,zmq::socket_type::dish); std::string portAsString = std::to_string(port_); - receiverSocket_->bind("udp://*:"+portAsString); + receiverSocket_->bind("udp://"+address_+":"+portAsString); ///used to set a custom time out to the socket receiverSocket_->set(zmq::sockopt::rcvtimeo,100); } @@ -88,14 +88,17 @@ void InternalUDPListener::listen() res = receiverSocket_->recv(msg,zmq::recv_flags::none); // std::string message = msg.to_string(); - if (useHandl_ == true) + if(res.has_value()) { - auto i = std::async(std::launch::async, MessageHandle_, msg.to_string()); - } else if(receiverQueue_ != nullptr) - { - WHISPER::Message receivedMessage(msg.to_string()); - receiverQueue_->addElement(receivedMessage); - } + if (useHandl_ == true) + { + auto i = std::async(std::launch::async, MessageHandle_, msg.to_string()); + } else if(receiverQueue_ != nullptr) + { + WHISPER::Message receivedMessage(msg.to_string()); + receiverQueue_->addElement(receivedMessage); + } + } } listening_ = false;