CAsyncSocket 没有子类化?
Posted
技术标签:
【中文标题】CAsyncSocket 没有子类化?【英文标题】:CAsyncSocket without subclassing? 【发布时间】:2016-05-04 15:09:43 【问题描述】:我正在寻找一种无需子类化即可使用 CAsyncSocket 的方法。到目前为止,在我发现的所有示例和教程中,它们都是它的子类,我想避免它。
提前谢谢你
【问题讨论】:
【参考方案1】:CAsyncSocket
旨在通过子类化来使用。它具有虚拟方法 - OnConnect
、OnReceive
,必须由子类覆盖,以便应用程序代码处理事件。
【讨论】:
谢谢,那么没有子类化就没有办法使用了吗? 必须将其本质上呈现为一个普通的 CSocket。【参考方案2】:不需要从CAsyncSocket 派生来使用它,尽管客户通常会这样做。如果您不派生(并实现回调处理程序),则几乎不可能以异步方式使用套接字。
CAsyncSocket
与任何其他 C++ 类一样,并且可以以几乎相同的方式实例化(在具有自动存储持续时间的堆栈上,或者 - 更常见的是 - 在具有动态存储持续时间的免费存储中)。 MSDN 提供了使用“裸”CAsyncSocket
:Windows Sockets: Using Class CAsyncSocket 的教程。
【讨论】:
干杯伙伴,我想我已经看过那个教程了。问题在于它根本没有解释如何与其他类一起使用它 @user3770392:这仅仅是因为将CAsyncSocket
与其他类一起使用并没有什么特别有趣的地方。这只是您的普通 C++ 课程。您具体需要了解什么?
不知道你是否熟悉Qt,我想做类似的事情,例如当一个数据包到达时,另一个方法被调用。我想尽可能避免子类化。
@user3770392:您计划如何在不从CAsyncSocket
派生并实现自己的通知处理程序的情况下获得有关传入数据的通知?由于您一直在重复您希望避免从某个类派生,这听起来像是您真的在尝试避免学习 C++。
总要学习肯定,但在 C++ 中有很多方法可以避免子类化。只传递一个函数指针或函子对我来说就可以了以上是关于CAsyncSocket 没有子类化?的主要内容,如果未能解决你的问题,请参考以下文章