Я новичок в POCO lib, и я делаю сетевые примеры в учебнике в формате pdf.
Когда я запускаю пример отправки DatagramSocket, я всегда получаю Poco::Net::NetException.
Если я использую порт «514», указанный в руководстве, я получу Poco::IOException «Ошибка ввода-вывода».
Моя среда — kubuntu 12.04, ядро 3.2.0-57-generic. Кто-нибудь знает об этом?? Спасибо!!
// DatagramSocket send example
#include <Poco/Net/DatagramSocket.h>
#include <Poco/Net/SocketAddress.h>
#include <Poco/Timestamp.h>
#include <Poco/DateTimeFormatter.h>
#include <string>
int main()
{
Poco::Net::SocketAddress sa(Poco::Net::IPAddress(), 12345);
Poco::Net::DatagramSocket dgs(sa);
std::string syslogMsg;
Poco::Timestamp now;
syslogMsg = Poco::DateTimeFormatter::format(now, "<14>%w %f %H:%M:%S Hello, World!");
dgs.sendBytes(syslogMsg.data(), syslogMsg.size());
return 0;
}//main
Изменить:
Спасибо Иоахиму Пилеборгу за предложения по displayText()
исключениям. Он показывает это: «Сетевое исключение: требуется адрес назначения»
И я изменил код следующим образом, и он сработал:
Poco::Net::SocketAddress recver("localhost", 1234);
dgs.sendTo(syslogMsg.data(), syslogMsg.size(), recver);
Но если я хочу использовать sendBytes()
, есть ли способ ввести адрес получателя по умолчанию??
displayText()
классаException
. - person Some programmer dude   schedule 09.12.2013