Библиотеки POCO: можно ли установить порт источника UDP?

Я использую библиотеки 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 может сделать это, верно?

0

Решение

Должно работать просто отлично; вы передаете 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);
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]