C++ 将安全插座作为正常插座传递到boost中
我有这些类型。问题是我需要传递一个安全的套接字,因为TSocket会直接从TSocureSocket转换到TSocket工作吗?还是有其他解决办法?根据端口的不同,我将确保插座的安全,而在其他端口中则不会。我只需要返回类型为TSocketC++ 将安全插座作为正常插座传递到boost中,c++,boost-asio,shared-ptr,C++,Boost Asio,Shared Ptr,我有这些类型。问题是我需要传递一个安全的套接字,因为TSocket会直接从TSocureSocket转换到TSocket工作吗?还是有其他解决办法?根据端口的不同,我将确保插座的安全,而在其他端口中则不会。我只需要返回类型为TSocket typedef boost::asio::ip::tcp::socket TBoostSocket; typedef boost::asio::ssl::stream<TBoostSocket> TSLLSocket
typedef boost::asio::ip::tcp::socket TBoostSocket;
typedef boost::asio::ssl::stream<TBoostSocket> TSLLSocket;
typedef boost::shared_ptr<TBoostSocket> TSocket;
typedef boost::shared_ptr<TSLLSocket> TSecureSocket;
typedef boost::asio::ip::tcp::socket TBoostSocket;
typedef boost::asio::ssl::stream TSLLSocket;
typedef boost::shared_ptr TSocket;
typedef boost::共享的\u ptr TSecureSocket;
我已经看过了
我有这些打字机
其中,next_layer_type
由以下类型定义:
typedef boost::remove_reference< Stream >::type next_layer_type;
typedef boost::remove_reference::键入next_layer_type;
由于使用TBoostSocket
定义模板,因此调用next\u layer()
或lower\u layer()
当然,这将返回一个引用而不是指针,并且该引用指向的是一个不属于您的实例。因此,您现在需要以某种方式将其包装在共享的ptr中,这可能并不容易,因为您不能允许将其删除
我有这些打字机
其中,next_layer_type
由以下类型定义:
typedef boost::remove_reference< Stream >::type next_layer_type;
typedef boost::remove_reference::键入next_layer_type;
由于使用TBoostSocket
定义模板,因此调用next\u layer()
或lower\u layer()
当然,这将返回一个引用而不是指针,并且该引用指向的是一个不属于您的实例。因此,您现在需要以某种方式将其包装在共享的ptr中,这可能并不容易,因为您不能允许将其删除
typedef boost::remove_reference< Stream >::type next_layer_type;