Я хочу открыть 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 сверху это не работает.
С уважением
Я не знаю Poco
но вы должны bind
к местный адрес и порт, то ваш sendto
отправит ваш пакет от этот локальный адрес: порт на дистанционный пульт адрес и порт.
Проверьте документы. Скорее всего sa
должен быть локальным адресом, а удаленный адрес должен быть указан где-то еще.
У UDP нет понятия соединения, поэтому нет причин связывать сокет с одним удаленным адресом. Сокет UDP может отправлять и получать в / из любого удаленного сокета.