1

我正在使用 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 可以做到这一点,对吧?

4

1 回答 1

1

应该可以正常工作;您将带有源地址和端口的 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);
于 2012-09-09T07:26:45.910 回答