问题标签 [poco-libraries]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1497 浏览

c++ - Poco C++ 库是否具有跨平台的 WaitForMultipleObjects() 模拟?

基于这个问题,我将使用 Poco::NamedEvent,但我需要等待多个事件(如 win32 WaitForMultipleObjects()

poco有这样的东西吗?(搜索文档并没有产生多少,但也许我没有使用正确的搜索)

0 投票
3 回答
4264 浏览

c++ - Socket select() 处理突然断开连接

我目前正在尝试修复我编写的与套接字 select() 调用相关的代理服务器中的错误。我正在使用 Poco C++ 库(使用 SocketReactor),问题实际上出在 Poco 代码中,这可能是一个错误,但我还没有收到他们的任何确认。

发生的情况是,每当连接突然终止时,套接字 select() 调用就会立即返回,这就是我认为它应该做的事情?无论如何,它会返回可读文件描述符集中的所有断开连接的套接字,但问题是当 Poco 尝试触发 onReadable 事件处理程序时抛出异常“套接字未连接”,这是我将放置代码的地方处理它。鉴于异常被静默捕获并且永远不会触发 onReadable 事件,因此 select() 调用会立即返回,从而导致 SocketReactor 中的无限循环。

我正在考虑修改 Poco 代码,而不是静默捕获异常,而是触发一个名为 onDisconnected 的新事件或类似的事件,以便可以执行清理。

我的问题是,是否有任何优雅的方法可以使用 select() 调用确定套接字是否异常关闭?我正在考虑使用异常消息来确定何时发生,但这对我来说似乎很脏。

0 投票
1 回答
1179 浏览

c++ - Poco SocketReactor 可扩展性

我使用 Poco 为 Linux 编写了一个代理服务器,但此后一直在阅读实现 TCP/IP 服务器可伸缩性的各种方法。我需要服务器来处理持久连接(不是 HTTP 流量),同时连接的上限约为 250 个。每个连接通常使用大约 5-10Kb/秒,处理流量的最佳延迟至关重要。

就目前而言,我正在使用 Poco SocketReactor,它使用 Reactor 模型,其核心是 select() 调用,但是我已经阅读了 C10K 问题以及其他一些资源,似乎使用这种方法可能不是最好的主意。我相信 Poco 库中有一个使用 poll() 的测试实现,所以这可能是改进的一个选项。

有没有人有使用 Poco SocketReactor 的经验,你知道它在我的场景中的扩展性如何?如果它不能很好地扩展,将不胜感激有关替代方案的建议。

0 投票
2 回答
1539 浏览

c++ - 带有 C++ poco 和 HTTPSStreamFactory 的错误

我正在尝试构建一个 C++ 应用程序来访问 XML 资源。使用 http 代码可以正常工作,从我从文档中可以看出,我需要做的就是确保 ssl 已安装(是的,已安装开发版),并将 StreamFactory 更改为 HTTPSStreamFactory。

这是有效的代码:

这是失败的代码 Poco::Net::HTTPSStreamFactory::registerFactory(); Poco::URI uri(argv[1]);

当我使用 HTTPSStreamFactory 发出请求时,这是我收到的错误消息:

空指针:_pInstance [在文件“/home/chpick/poco-1.3.6p2/Util/include/Poco/Util/Application.h”中,第 422 行]

我已附上 Application.h

任何帮助都会很棒。谢谢

0 投票
2 回答
1568 浏览

c++ - 进程的 C++ 跨平台:POCO lib 好吗?其他选择?

我想使用一些跨平台 C++ 库来启动、停止和获取进程的标准输出。我发现并且我想使用 C++ POCO 库:这些好用吗?

什么是最好的选择?我使用 Boost,他们有 Boost Process,但不是官方版本的一部分,AFAIK 也不会很快(开发于 2008 年停止)。你能给我一些关于这个 POCO lib 或其他的建议吗?

0 投票
1 回答
1459 浏览

c++ - Poco C++ 库是否支持位置命令行参数?

我看不出有办法支持Poco 的 Poco::Util::Application类和相关的位置命令行参数Poco::Util::OptionProcessor。位置参数是命令行上的未命名参数,位于所有其他选项之后,例如:

在该示例中,filename.bin 是一个位置参数,它没有名称,但它是所有命名参数之后的第一个位置参数。Boost 的 program_options 支持这一点,我很难相信 Poco 不支持,但鉴于源代码和文档,我无法发现如何支持它。

Poco 支持这个吗?

0 投票
2 回答
26869 浏览

c++ - C++ 使用 makefile (newbe) 链接到库

我试图了解如何在我的 C++ 项目中使用非标准库。我有几个问题。

假设我想使用 POCO 库。所以我下载了它并使用make(静态构建)构建它。现在我有一堆 .o 文件和 .h 文件。在不同的目录中有一个 Path.h 文件和一个 Path.o 文件。

现在我想在我的代码中使用这个模块。所以我使用#include“Poco/Path.h”包含文件。我是否必须修改 makefile 并将 Path.o 添加到我的目标?

当我使用标准库时会发生什么?那些仅在头文件中可用吗?我知道模板代码无法预编译。剩下的呢?

0 投票
1 回答
506 浏览

c++ - 设置器和线程

我对 C++ 中的线程有疑问。

我有 2 个线程正在运行:一个运行客户端,一个用作侦听器。侦听器线程调用一个shutdown()方法,该方法仅执行以下操作:

shutdown_设置为 volatile,并且监听线程是唯一调用该方法的线程,并且仅在其他线程处于模式 ( )shutdown()时才访问。wait()Poco synchronizedObject wait()

出于某种原因,cout一直打印“0”,最初(在使用 xcode 时)我收到一条警告,说该行shutdown_=true没有做任何事情。几次编译后,此警告消失了。

我尝试使用互斥锁,在行前后锁定和解锁,没有效果。我最终shutDown()完全删除了该函数,而不是使用它,而是改为shutDown_公开的,并直接从侦听器线程访问它,如下所示:

这很好用。我只是不知道问题是什么,以及将来如何避免它。

谢谢,

0 投票
1 回答
1235 浏览

c++ - 无法迭代 Poco::Any 的 std::map

我有一个 Poco::Any 的 std::map,我正在尝试迭代并输出到流中,但出现编译器错误。我的代码如下:

该行有2个错误:

更新:

我知道模板是编译时,而 type() 是运行时,所以不起作用。感谢您强调这一点。DynamicAny 也不起作用,因为它只接受具有 DynamicAnyHolder 实现的类型,并不理想。我想对类型强加的唯一规则是它们有 << 重载。

以下是我目前正在做的事情,在一定程度上可以工作,但只转储已知类型,这不是我所追求的。

0 投票
1 回答
2048 浏览

installation - 在 VS2010 上安装 Poco 库

我试图在 VS2010 中使用 Poco 库但没有成功。

我已将 poco-1.4.1p1.zip 下载到我的计算机,解压缩并将其移动到我的 Program Files 文件夹中。

之后,尝试将此文件夹添加到我的项目的其他包含目录中(这是在 Properties (右键单击项目)-> Configuration Properties -> C\C++ -> General -> Additional Include Directories )。

这对我的程序中的行没有帮助

包括“Poco/Net/StreamSocket.h”

仍然被标记为错误说

致命错误 C1083:无法打开包含文件:'Poco/Net/StreamSocket.h':没有这样的文件或目录

这是我第一次尝试将外部库添加到 VS2010。我试图在 MSDN 文档和 POCO 文档站点上获得帮助,但没有成功。

此外,我在搜索中没有遇到过一些类似系统变量的问题。这是什么意思?

最后,你能帮我让 Poco 库运行起来吗?

在此先感谢,埃亚尔。