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,这会造成一大堆麻烦)。