gpt4 book ai didi

c++ Poco 库 UDP DatagramSocket 发送示例引发 Poco::Net::NetException

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:47:17 27 4
gpt4 key购买 nike

我是 POCO lib 的新手,我正在做教程 pdf 上的网络示例。

当我运行 DatagramSocket 发送示例时,我总是会收到 Poco::Net::NetException。

如果我使用教程给出的端口“514”,我将得到一个 Poco::IOException“I/O 错误”。

我的环境是kubuntu 12.04,kernel 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

编辑:

感谢 Joachim Pileborg 对异常的 displayText() 的建议。它显示:“网络异常:需要目标地址”

然后我像这样修改了代码并且它起作用了:

Poco::Net::SocketAddress recver("localhost", 1234);
dgs.sendTo(syslogMsg.data(), syslogMsg.size(), recver);

但是如果我想使用sendBytes(),有没有办法输入默认的接收者地址??

最佳答案

调用 Poco 套接字类的 connect(...) 函数。

Poco::Net::SocketAddress recver("localhost", 1234);
dgs.connect(recver);

然后您可以dgs.sendBytes()

希望这对您有所帮助。

关于c++ Poco 库 UDP DatagramSocket 发送示例引发 Poco::Net::NetException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20467322/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com