标签: poco-libraries

如何开始使用 Poco 库?

我有以下文件 ,我目前只想设法成功编译。我一直在寻找有关如何使用Poco的教程,但不幸的是,我找不到适合完整初学者的教程(我尝试在 linux 和 eclipse 以及 win 和 vs08 下遵循文档。)

如果有人能指导我正确使用 Poco 库(在 eclipse 或 vs08 下),我将不胜感激。

编辑:发现问题,我没有向链接器指定确切的库,只指定了它们的搜索路径。

c++ poco-libraries

5
推荐指数
1
解决办法
6269
查看次数

C++ - Qt Creator中的Poco库

我正在尝试使用Qt Creator中的poco库和poco附带的一个示例,我已经在Visual Studio 2012中使用它,但我在Qt Creator中不断出现构建错误.我的lib路径中有.dll和.lib.

这是我的.pro文件

TEMPLATE = app
CONFIG += console
CONFIG -= qt

SOURCES += main.cpp
INCLUDEPATH += C:\Users\justin\Downloads\poco-1.4.6\Net\include
INCLUDEPATH += C:\Users\justin\Downloads\poco-1.4.6\Foundation\include

win32:CONFIG(release, debug|release): LIBS += -L$$PWD/lib/ -lPocoFoundation
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/lib/ -lPocoFoundationd

INCLUDEPATH += $$PWD/
DEPENDPATH += $$PWD/

win32:CONFIG(release, debug|release): PRE_TARGETDEPS += $$PWD/lib/PocoFoundation.lib
else:win32:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$PWD/lib/PocoFoundationd.lib

win32:CONFIG(release, debug|release): LIBS += -L$$PWD/lib/ -lPocoNet
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/lib/ -lPocoNetd

INCLUDEPATH += $$PWD/
DEPENDPATH += $$PWD/

win32:CONFIG(release, debug|release): PRE_TARGETDEPS += $$PWD/lib/PocoNet.lib
else:win32:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$PWD/lib/PocoNetd.lib …
Run Code Online (Sandbox Code Playgroud)

c++ qt poco-libraries

5
推荐指数
1
解决办法
3154
查看次数

poco c ++静态链接问题与未定义的符号引用

我正在尝试链接到POCO C++库的静态​​版本,如下所示:

g++ BCCMain.o -L$_POCO_LIBS -Wl,-Bstatic $_POCO_LIBS/libPocoFoundation.a $_POCO_LIBS/libPocoUtil.a $_POCO_LIBS/libPocoXML.a $_POCO_LIBS/libPocoJSON.a -Wl,-Bdynamic -o BCMain
Run Code Online (Sandbox Code Playgroud)

不幸的是,这给出了一些对符号的未定义引用的错误,例如:

Poco::Logger::get(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
Run Code Online (Sandbox Code Playgroud)

即使Poco::Logger::get(std::string const&)实际上是IS定义的libPocoFoundation.a.

现在,如果我尝试链接到基础库的共享版本,它可以工作:

g++ BCCMain.o -L$_POCO_LIBS -Wl,-Bstatic $_POCO_LIBS/libPocoFoundation.a $_POCO_LIBS/libPocoUtil.a $_POCO_LIBS/libPocoXML.a $_POCO_LIBS/libPocoJSON.a -Wl,-Bdynamic -lPocoFoundation -o BCMain
Run Code Online (Sandbox Code Playgroud)

lib的静态和共享版本具有相同的符号,因此我发现很难弄清楚我做错了什么.

Ubuntu的/ Linaro的.g ++ 4.6.3

c++ static-linking poco-libraries

5
推荐指数
2
解决办法
6266
查看次数

将 Websocket 与 Poco 库连接

我正在尝试使用Poco C++ 库连接到Echo Test Websocket。为此,我的代码应设置 Websocket:

HTTPClientSession cs("echo.websocket.org");
HTTPRequest request(HTTPRequest::HTTP_GET, "/ws");
HTTPResponse response;

WebSocket* m_psock = new WebSocket(cs, request, response);
m_psock->close(); //close immidiately
Run Code Online (Sandbox Code Playgroud)

但是它不起作用:我收到如下错误消息:

Poco::Exception: WebSocket Exception: Cannot upgrade to WebSocket connection: Not Found
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

c++ connection websocket poco-libraries

5
推荐指数
1
解决办法
8329
查看次数

带POCO的C++ Http请求

我想知道如何用C++中的POCO对URL进行请求(例如下载图片并保存)?

到目前为止,我得到了这个小代码

#include <iostream>
#include <string>
#include "multiplication.h"
#include <vector>
#include <HTTPRequest.h>
using std::cout;
using std::cin;
using std::getline;

using namespace Poco;
using namespace Net;

int main() {
    HTTPRequest *test = new HTTPRequest("HTTP_GET", "http://www.example.com", "HTTP/1.1");
}
Run Code Online (Sandbox Code Playgroud)

c++ http request poco-libraries

5
推荐指数
1
解决办法
2万
查看次数

在 Windows 7 的 C++ 中寻找 poco ssl websocket 客户端示例

我一直在查看 poco 示例和文档,但我找不到如何结合使用 poco 的 websockets 和 SSL。我成功地将非 SSL websocket(基于 WebSocket 类)连接到服务器(来自 Qt5.4 的 echoserver 示例,在 Ubuntu 上运行),但是如何将 SSL 添加到客户端我不知道。Poco 的NetSSL_OpenSSL 示例并不是那么有用,因为我不需要知道如何下载、推文、邮寄或编写时间服务器。后者也是唯一一个完全使用“SecureStreamSocket”对象的对象(这可能是我需要的类)。但是该示例只是从请求对象访问套接字,它没有显示如何正确创建和配置套接字。

我只想要一个 SSL websocket 客户端来发送和接收一些简单的消息,比如“Hello World”。有人可以帮我吗?

我对客户端的操作系统使用 Windows 7 64 位,对服务器的操作系统使用 VirtualBox 上的 Ubuntu 64 位,但服务器端没有问题。我的 poco 版本是 1.6.0,我用 Visual Studio 2013 Express 编译它。我也使用 OpenSSL 1.0.1j。

干杯

亚历克斯

c++ ssl client websocket poco-libraries

5
推荐指数
1
解决办法
5360
查看次数

受保护的析构函数的基本原理

我注意到许多Poco类都有一个受保护的析构函数.这使得编码更加烦人.例如,这里是我的一些代码:

struct W2: Poco::Util::WinRegistryConfiguration
{
    typedef Poco::Util::WinRegistryConfiguration inherited;
    using inherited::inherited;
};

std::string get_documents_folder()
{
    W2 regc { "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders"  };
    return regc.getString("Personal", "");
}
Run Code Online (Sandbox Code Playgroud)

当然,如果我可以取消W2并且只是制造regc类型会更简单WinRegistryConfiguration.但由于受保护的析构函数,这是不可能的.

我意识到可以使用它Poco::AutoPtr,但是new当自动分配应该正常工作时,通过动态分配浪费资源.

我的问题是:这是什么原因,我忽略了什么?

c++ poco-libraries

5
推荐指数
1
解决办法
360
查看次数

如何在 Poco 中接收 POST 请求内容?

我在 Poco 中编写了一个 HTTP 客户端,它将 POST 请求发送到 HTTPServer 以下是片段

Poco::Net::HTTPClientSession s("127.0.0.1", 9090);
Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_POST, "/echo");

std::string body("rs=this is a random request body");
request.setContentLength(body.length());
s.sendRequest(request) << body;
Run Code Online (Sandbox Code Playgroud)

服务器收到请求,但以下是我能找到的获取蒸汽的唯一方法(即 rs=this is a ....)

void SRequestHandler::handleRequest(Poco::Net::HTTPServerRequest& hreq, Poco::Net::HTTPServerResponse& resp){
std::istream &i = hreq.stream();
        Poco::StreamCopier::copyStream(i, ss, hreq.getContentLength());
}
Run Code Online (Sandbox Code Playgroud)

因此,获取客户端发送的内容的方法是使用字符串。有没有更简单/直接的方式来获取内容?

poco-libraries

5
推荐指数
1
解决办法
5915
查看次数

支持 POCO C++ 库中的 MySQL 时间戳

POCO 库支持 MySQL DATE、TIME 和 DATETIME 列,但不支持 TIMESTAMP。从 TIMESTAMP 列中选择值会引发“未知字段类型”异常,因为“Poco/Data/MySQL/ResultMetadata.cpp”不支持 MYSQL_TYPE_TIMESTAMP。

在我的项目中,我不得不将几列更改为 DATETIME 以使其工作。这不是一个大问题,我仍然想知道这个限制的原因是什么。如果我必须使用无法更改的现有数据库模式,我会遇到严重的麻烦。

时间戳列被广泛使用,因此我不相信它们被简单地省略了。时间戳列是否存在实现问题?有我可以使用的解决方法吗?未来是否计划为 POCO 添加 MySQL 时间戳支持?

mysql timestamp poco-libraries

5
推荐指数
1
解决办法
377
查看次数

Poco::Net HTTPServer:如何检测断开连接的客户端?

我正在开发一个 http 服务器,作为我的 C++ 应用程序的一部分,基于 Poco::Net HTTP。它非常简单,使用Poco::Net::HTTPServer,然后Poco::Net::HTTPRequestHandler使用子类,实现void handleRequest(Poco::Net::HTTPServerRequest &req, Poco::Net::HTTPServerResponse &resp). 在这种方法中,进程可能会变得耗时,甚至在某些情况下可能会无休止地运行。

浏览器通过 ajax 请求 ( ) 从 Web 应用程序内部使用这些服务器XMLHttpRequest,有时还abort()通过这些请求(这会关闭连接?!)。

如何检测内部的这种情况handleRequest(...)以便停止处理?

顺便说一句:我确实需要这种流程。关于不同的、可能是异步的方式(例如传递数据)的建议将不起作用。如果 Poco 做不到,我就必须更换它。

文档和一些实验都没有Poco::Net::HTTPServerRequest帮助Poco::Net::HTTPServerResponse我。

c++ http poco-libraries

5
推荐指数
1
解决办法
831
查看次数