Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将Poco StreamSocket转换为SecureStreamSocket_C++_Ssl_Poco Libraries_Ftps - Fatal编程技术网

C++ 将Poco StreamSocket转换为SecureStreamSocket

C++ 将Poco StreamSocket转换为SecureStreamSocket,c++,ssl,poco-libraries,ftps,C++,Ssl,Poco Libraries,Ftps,我正在修改我以前为客户编写的嵌入式FTP服务器应用程序,以支持FTPS,虽然我通过将SecureServerSocket传递到TCPSocketServer来使用隐式模式,但我希望支持显式模式,其中连接以常规套接字连接开始,并且在接收AUTH TLS时,将StreamSocket切换到SecureStreamSocket并发送服务器hanshake 我曾尝试使用attach方法,但它似乎发送的是客户端握手,而不是服务器握手。 因此,在创建SecureStreamSocket时,我尝试创建一个服务

我正在修改我以前为客户编写的嵌入式FTP服务器应用程序,以支持FTPS,虽然我通过将SecureServerSocket传递到TCPSocketServer来使用隐式模式,但我希望支持显式模式,其中连接以常规套接字连接开始,并且在接收AUTH TLS时,将StreamSocket切换到SecureStreamSocket并发送服务器hanshake

我曾尝试使用attach方法,但它似乎发送的是客户端握手,而不是服务器握手。 因此,在创建SecureStreamSocket时,我尝试创建一个服务器上下文,但在尝试从filezilla连接时得到“GnuTLS错误-19:接收到意外的TLS握手数据包”

const Poco::Net::Context::Ptr ctx = new Poco::Net::Context(Poco::Net::Context::SERVER_USE, "", "", "", Poco::Net::Context::VERIFY_NONE, 9, false, "ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH"); 
SecureStreamSocket *test = new SecureStreamSocket(ctx);
test->attach(socket());

是否有人成功地将已经建立的POCO TCPServer连接转换为安全连接?如果是,您是如何做到的?任何提示都会很有帮助

SecureStreamSocket
具有一些静态功能,可以将
StreamSocket
附加到
SecureStreamSocket
。类似于
静态SecureStreamSocket attach(const StreamSocket&StreamSocket,…
),但我认为您希望像
SecureStreamSocket test=SecureStreamSocket::attach一样使用它(yourSocket…
感谢您指出这一点,但结果是一样的:GnuTLS错误-19:收到意外的TLS握手数据包。将错误处理程序分配给Poco后,它会在附加时记录以下错误:错误:141A10F4:SSL例程:ossl_statem_client_read_transition:意外消息似乎是Poco的问题e协议切换序列?您的POCO FTP服务器代码是否在某处可用?需要一个。感谢
SecureStreamSocket
具有一些静态功能,可以将
StreamSocket
附加到
SecureStreamSocket
。例如
静态SecureStreamSocket附加(const StreamSocket&StreamSocket,…
。但我认为您希望像使用
SecureStreamSocket test=SecureStreamSocket::attach一样使用它(yourSocket…
感谢您指出这一点,但结果是一样的:GnuTLS错误-19:收到意外的TLS握手数据包。将错误处理程序分配给Poco后,它会在附加时记录以下错误:错误:141A10F4:SSL例程:ossl_statem_client_read_transition:意外消息似乎是Poco的问题协议交换序列?您的POCO FTP服务器代码是否在某处可用?需要一个。谢谢