UDP не может назначить запрашиваемый адрес

Я хочу открыть Datagramsocket и отправить несколько пакетов на мое сетевое устройство.
Однако, когда я использую следующий код, возникает исключение:
Cannot Assign Requested Address: 192.168.1.114:1900

Poco::Net::SocketAddress sa("192.168.1.114",1900);
Poco::Net::DatagramSocket dgs(sa);
std::string text = "hello";
dgs.sendBytes(text.data(),text.size());

В чем здесь проблема. Я также использую программное обеспечение для тестирования udp, чтобы проверить принимающую сторону, способна ли она принимать пакеты udp через этот порт, и она работает, однако с кодом poco сверху это не работает.

С уважением

0

Решение

Я не знаю Poco но вы должны bind к местный адрес и порт, то ваш sendto отправит ваш пакет от этот локальный адрес: порт на дистанционный пульт адрес и порт.

1

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

Проверьте документы. Скорее всего sa должен быть локальным адресом, а удаленный адрес должен быть указан где-то еще.

У UDP нет понятия соединения, поэтому нет причин связывать сокет с одним удаленным адресом. Сокет UDP может отправлять и получать в / из любого удаленного сокета.

0