ADD: added support for specify the address to listen to

This commit is contained in:
hwinkel
2023-09-26 10:55:21 +02:00
parent f794f4c5d0
commit 290f7a9540
2 changed files with 6 additions and 3 deletions

View File

@@ -21,7 +21,7 @@ namespace WHISPER {
public:
InternalUDPListener(std::uint16_t port);
InternalUDPListener(std::uint16_t port, std::string address = "*");
~InternalUDPListener();
void connect(std::shared_ptr<threadSafeQueue<WHISPER::Message>> receiver);
void start();
@@ -36,6 +36,9 @@ namespace WHISPER {
private:
/// @brief the address to listen to (default: "*")
std::string address_;
/// @brief the port to listen to
std::uint16_t port_;
//zeromq io contex
zmq::context_t ctx;

View File

@@ -9,7 +9,7 @@
namespace WHISPER {
InternalUDPListener::InternalUDPListener(std::uint16_t port)
InternalUDPListener::InternalUDPListener(std::uint16_t port, std::string address):address_(address)
{
port_ = checkPort(port);
}
@@ -37,7 +37,7 @@ void InternalUDPListener::connect(std::shared_ptr<threadSafeQueue<WHISPER::Messa
receiverSocket_ = std::make_shared<zmq::socket_t>(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);
}