我是POCO lib的新手,我正在教程pdf上做网络示例。
当我运行DatagramSocket发送示例时,我总是得到一个Poco :: Net :: NetException。
如果我使用教程给出的端口'514',我将得到一个Poco :: IOException“I / O Error”。
我的环境是kubuntu 12.04,内核3.2.0-57-generic。谁知道这个? THX !!
// 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
修改
感谢Joachim Pileborg就异常displayText()
提出建议。它显示了这一点:“网络例外:需要目的地地址”
我修改了这样的代码并且有效:
Poco::Net::SocketAddress recver("localhost", 1234);
dgs.sendTo(syslogMsg.data(), syslogMsg.size(), recver);
但如果我想使用sendBytes()
,是否有办法输入默认收件人的地址?
答案 0 :(得分:2)
调用Poco套接字类的connect(...)
函数。
Poco::Net::SocketAddress recver("localhost", 1234);
dgs.connect(recver);
从那里你可以dgs.sendBytes()
。
希望这有帮助。