POCO库:可以设置UDP源端口

POCO libraries: possible to set UDP Source port?

本文关键字:UDP 设置 POCO      更新时间:2023-10-16

我正在使用POCO c++库,我不知所措。发送UDP数据报时,有什么方法可以设置源端口吗?看起来它总是设置为目的港,但这肯定是可能的。

我的代码看起来像这样:

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);

然后,将一个带有目标地址和端口的单独套接字地址传递到SendTo

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