C++注册监听器demo

这是一个关于C++中实现事件监听器的示例,包括`SlideMultiplexerCtrl`类,用于添加、移除和调用监听器。示例中定义了事件类型,事件类以及链接模板类`Link`,并提供了注册和取消注册监听器的函数。
摘要由CSDN通过智能技术生成

// .h

enum class SlideMultiplexerCtrlId
{
    // public
    SelectionChanged,
    ChangeCurrentPage,
};

}   // namespace sd

namespace sd { namespace tools {

class SlideMultiplexerCtrlEvent
{
public:
    SlideMultiplexerCtrlId const meEventId;
    const void* mpUserData;

    SlideMultiplexerCtrlEvent(
        SlideMultiplexerCtrlId eEventId,
        const void* pUserData);
};

class SdSlideMultiplexerCtrl
{
public:
    SdSlideMultiplexerCtrl() = default;
    virtual ~SdSlideMultiplexerCtrl() = default;

    void AddListener(const Link<SlideMultiplexerCtrlEvent&, void>& rCallback);
    void RemoveListener(const Link<SlideMultiplexerCtrlEvent&, void>& rCallback);

    void CallListeners(SlideMultiplexerCtrlId eId,
        void const * pUserData);

private:
    typedef ::std::vector<Link<SlideMultiplexerCtrlEvent&, void>> ListenerList;
    ListenerList maListeners;
};

// .cpp

//===== EventMultiplexerEvent ===================

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
c 监听端口 demo 是一个演示程序,用于展示如何使用 c 语言监听一个指定端口的网络连接。 首先,我们需要引入相关的库文件。在 c 语言中,网络编程通常使用 Socket 库来实现。头文件 `<sys/socket.h>` 和 `<netinet/in.h>` 包含了所需的函数和数据结构。 接下来,我们创建一个套接字(socket)。套接字是一种用来进行网络通信的文件描述符。通过调用 `socket()` 函数,我们可以创建一个新的套接字,并将其赋值给一个整型变量。 然后,我们需要设置套接字的属性。可以使用 `setsockopt()` 函数来设置套接字的属性,比如地址和端口等信息。 接下来,我们需要绑定套接字到指定的地址和端口上。可以使用 `bind()` 函数来实现。在调用 `bind()` 函数时,我们需要填入套接字的文件描述符,以及一个数据结构 `struct sockaddr_in`,该数据结构包含了要绑定的地址和端口信息。 最后,我们使用 `listen()` 函数开始监听指定端口上的连接请求。这样,当有新的连接请求到达时,我们就可以接受它。可以使用 `accept()` 函数来接受连接请求,并返回一个新的套接字用于后续的通信。 在实际应用中,我们通常将监听端口的代码放在一个无限循环中,以保持程序一直处于监听状态,不会退出。 总结起来,c 监听端口 demo 是一个使用 c 语言编写的演示程序,通过 Socket 编程实现监听指定端口的网络连接。它包含了创建套接字、设置套接字属性、绑定套接字到地址和端口、监听连接请求等一系列操作。这个演示程序可以帮助初学者理解并入门 c 语言网络编程的基本概念和操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值