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

次に、宛先アドレスとポートを含む別の socketaddress を に渡しますSendTo

Poco::Net::SocketAddress destAddress(destination_address, destination_port);
dgs.setBroadcast(true);
dgs.sendTo(data,dataLength, destAddress);
于 2012-09-09T07:26:45.910 に答える