gpt4 book ai didi

c++ - POCO : How to properly attach StreamSocket to SecureStreamSocket?

转载 作者:太空宇宙 更新时间:2023-11-03 15:02:37 29 4
gpt4 key购买 nike

我尝试将已连接的 StreamSocket 附加到 SecureStreamSocket:

class MyConnection : public TCPServerConnection {
private:
Context::Ptr m_pContext;
public:
MyConnection(const StreamSocket& socket, Context::Ptr pContext)
: TCPServerConnection(socket),
m_pContext(pContext)
{
}

virtual void run() {
SecureStreamSocket secureSock(SecureStreamSocket::attach(socket(), m_pContext));
socket() = secureSock;
}
}

但是我有 SSLException:

SSL Exception [N4Poco3Net12SSLExceptionE]: error:140C5042:SSL routines:SSL_UNDEFINED_FUNCTION:called a function you should not call

执行了 SSL 库的初始化:

Poco::Net::initializeSSL(); // inside Application::initialize

SSL 初始化后的上下文初始化:

 Poco::Net::Context::Ptr pContext =
new Poco::Net::Context(
Poco::Net::Context::SERVER_USE,
"server.key",
"server.crt",
"/path/to/certs/"
);

最佳答案

我们可以这样重写 SecureStreamSocket::attach(...):

SecureStreamSocket SecureStreamSocket::attach(const StreamSocket& streamSocket, Context::Ptr pContext)
{
SecureStreamSocketImpl* pImpl = new SecureStreamSocketImpl(static_cast<StreamSocketImpl*>streamSocket.impl()), pContext);
SecureStreamSocket result(pImpl);
if (pImpl->context()->isForServerUse())
pImpl->acceptSSL();
else
pImpl->connectSSL();
return result;
}

感谢this post .现在它适用于服务器和客户端。

关于c++ - POCO : How to properly attach StreamSocket to SecureStreamSocket?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19160105/

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