POCO库:是否可以设置UDP源端口? 我使用POCO C++库,我不知所措。发送UDP数据报时,有没有办法设置源端口?看起来它总是设置为目标端口,但这肯定是可能的

POCO库:是否可以设置UDP源端口? 我使用POCO C++库,我不知所措。发送UDP数据报时,有没有办法设置源端口?看起来它总是设置为目标端口,但这肯定是可能的,c++,udp,poco-libraries,C++,Udp,Poco Libraries,我的代码如下所示: Poco::Net::SocketAddress bcast("255.255.255.255", m_txPort); DatagramSocket dgs = DatagramSocket(bcast,false); dgs.setBroadcast(true); dgs.sendTo(data,dataLength, broad); 如果做不到这一点,我可能会改用Boost——我想Boost可以做到,对吧?应该可以正常工作;将带有源地址和端口的SocketAddre

我的代码如下所示:

Poco::Net::SocketAddress bcast("255.255.255.255", m_txPort);
DatagramSocket dgs  = DatagramSocket(bcast,false);
dgs.setBroadcast(true);
dgs.sendTo(data,dataLength, broad);

如果做不到这一点,我可能会改用Boost——我想Boost可以做到,对吧?

应该可以正常工作;将带有源地址和端口的SocketAddress传递到
DatagramSocket
构造函数中,该构造函数表示要绑定到哪个本地地址;以你为榜样,

Poco::Net::SocketAddress sourceAddress("255.255.255.255", source_port);
DatagramSocket dgs(source_address,false);
然后将带有目标地址和端口的单独socketaddress传递到
SendTo

Poco::Net::SocketAddress destAddress(destination_address, destination_port);
dgs.setBroadcast(true);
dgs.sendTo(data,dataLength, destAddress);

应该工作得很好;将带有源地址和端口的SocketAddress传递到
DatagramSocket
构造函数中,该构造函数表示要绑定到哪个本地地址;以你为榜样,

Poco::Net::SocketAddress sourceAddress("255.255.255.255", source_port);
DatagramSocket dgs(source_address,false);
然后将带有目标地址和端口的单独socketaddress传递到
SendTo

Poco::Net::SocketAddress destAddress(destination_address, destination_port);
dgs.setBroadcast(true);
dgs.sendTo(data,dataLength, destAddress);

不幸的是,当我尝试在sendTo中使用与创建DatagramSocket不同的SocketAddress时,我根本得不到任何数据包。(我和Wireshark一起看)。我同意这样做似乎是正确的——我就是做不到。我错了——你说得很对。我花了一点时间才开始工作(出于一个不相关的原因,我需要在两个地方将reuseAddress设置为True,这造成了一大堆麻烦)。不幸的是,当我尝试在sendTo中使用与创建DatagramSocket不同的SocketAddress时,我根本得不到任何数据包。(我和Wireshark一起看)。我同意这样做似乎是正确的——我就是做不到。我错了——你说得很对。我花了一点时间才开始工作(出于一个不相关的原因,我需要在两个地方都设置好reuseAddress,这会造成一大堆麻烦)。