我正在使用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 - 我认为提升可以做到这一点,对吗?
答案 0 :(得分:1)
应该工作得很好;您将带有源地址和端口的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);