当前位置: 首页 > news >正文

网络代理加盟如何windows优化大师

网络代理加盟如何,windows优化大师,外贸网站案例,上海建网站方案项目完整版在: 文章目录 一、channel模块:事件管理Channel类实现二、提供的功能三、实现思想(一)功能(二)意义(三)功能设计 四、代码(一)框架(二…

项目完整版在:

文章目录

  • 一、channel模块:事件管理Channel类实现
  • 二、提供的功能
  • 三、实现思想
    • (一)功能
    • (二)意义
    • (三)功能设计
  • 四、代码
    • (一)框架
    • (二)完整

一、channel模块:事件管理Channel类实现

在这里插入图片描述

二、提供的功能

1.对监控事件的管理
描述符是否可读
描述符是否可写
对描述符监控可读
对描述符监控可写
解除可读事件监控
解除可写事件监控
解除所有事件监控
2.对监控事件触发后的处理
设置对于不同事件的回调处理函数
明确触发了某个事件该如何处理

三、实现思想

(一)功能

对socket套接字的操作进行封装。

(二)意义

对socket套接字的操作进行封装。

(三)功能设计

1.对监控事件的管理
描述符是否可读
描述符是否可写
对描述符监控可读
对描述符监控可写
解除可读事件监控
解除可写事件监控
解除所有事件监控
2.对监控事件触发后的处理
设置对于不同事件的回调处理函数
明确触发了某个事件该如何处理

四、代码

(一)框架

class Channel {private:int _fd;uint32_t events;  // 当前需要监控的事件uint32_t revents; // 当前连接触发的事件using eventCallback = std::function<void()>>;eventCallback _read_callback;  // 可读事件被触发的回调函数eventCallback _error_callback; // 可写事件被触发的回调函数eventCallback _close_callback; // 连接关闭事件被触发的回调函数eventCallback _event_callback; // 任意事件被触发的回调函数eventCallback _write_callback; // 可写事件被触发的回调函数public:Channel(int fd) : fd(_fd) {}int Fd() {return _fd ;}void setReadCallback(const eventCallback &cb);void setWriteCallback(const eventCallback &cb);void setErrorCallback(const eventCallback &cb);void setCloseCallback(const eventCallback &cb);void setEventCallback(const eventCallback &cb);bool readAble();   // 当前是否可读bool writeAble();  // 当前是否可写void enableRead(); // 启动读事件监控void enableWrite(); // 启动写事件监控void disableRead();     // 关闭读事件监控void disableWrite(); // 关闭写事件监控void disableAll();  // 关闭所有事件监控void Remove();  //移除监控void handleEvent(); // 事件处理,一旦触发了某个事件,就调用这个函数!};

(二)完整

class Channel {private:int _fd;uint32_t events;  // 当前需要监控的事件uint32_t revents; // 当前连接触发的事件using eventCallback = std::function<void()>>;eventCallback _read_callback;  // 可读事件被触发的回调函数eventCallback _error_callback; // 可写事件被触发的回调函数eventCallback _close_callback; // 连接关闭事件被触发的回调函数eventCallback _event_callback; // 任意事件被触发的回调函数eventCallback _write_callback; // 可写事件被触发的回调函数public:Channel(int fd) : fd(_fd) {}int Fd() {return _fd ;}void SetRevents(uint32_t events) {_revents = events; }void setReadCallback(const eventCallback &cb) { _read_callback = cb;}void setWriteCallback(const eventCallback &cb) { _write_callback = cb; }void setErrorCallback(const eventCallback &cb) { _error_callback = cb; }void setCloseCallback(const eventCallback &cb) { _close_callback = cb; }void setEventCallback(const eventCallback &cb) { _event_callback = cb; }bool readAble() {  // 当前是否可读 return (_events & EPOLLIN);}bool writeAble() {  // 当前是否可写return (_events & EPOLLOUT);}void enableRead() {// 启动读事件监控_events |= EPOLLIN; // 后面会添加到EventLoop的事件监控!}void enableWrite() { // 启动写事件监控 _events |= EPOLLOUT; // 后面会添加到EventLoop的事件监控!}void disableRead() {    // 关闭读事件监控_events &= ~EPOLLIN;   // 后面会修改到EventLoop的事件监控!}void disableWrite() { // 关闭写事件监控 _events &= ~EPOLLOUT;}void disableAll() { // 关闭所有事件监控_events = 0;}void Remove();  // 后面会调用EventLoop接口移除监控void HandleEvent() {if ((_revents & EPOLLIN) || (_revents & EPOLLRDHUP) || (_revents & EPOLLPRI)) {if (_read_callback) _read_callback();}/*有可能会释放连接的操作事件,一次只处理一个*/if (_revents & EPOLLOUT) {if (_write_callback) _write_callback();}else if (_revents & EPOLLERR) {if (_error_callback) _error_callback();//一旦出错,就会释放连接,因此要放到前边调用任意回调}else if (_revents & EPOLLHUP) {if (_close_callback) _close_callback();}/*不管任何事件,都调用的回调函数*/if (_event_callback) _event_callback();}};
http://www.hkea.cn/news/202507/

相关文章:

  • 哈尔滨微网站建设热搜在哪里可以看
  • 网站用oracle做数据库福州seo推广服务
  • 康保县城乡建设委员会网站营销型网站重要特点是
  • 手机做网站的步骤跨境电商有哪些平台
  • 请人做网站要多少网络事件营销
  • 网站页脚有什么作用厦门seo哪家强
  • 东莞百度提升优化优化推广网站推荐
  • 查企业网站有哪些站长统计app软件
  • 做a高清视频在线观看网站济源新站seo关键词排名推广
  • 刚做的网站怎么搜索不出来百度seo收录软件
  • 视频拍摄app站长工具seo综合查询广告
  • 新闻单位建设网站的意义武汉seo推广优化
  • 低价网站公司软文怎么写
  • 东莞市建设公共交易中心网站百度官网首页
  • 如何建立的网站能争钱优化营商环境 助推高质量发展
  • 做百度网站营销型网站建设排名
  • 网站域名被黑国际新闻最新消息战争
  • 苏州网站开发公司济南兴田德润厉害吗网络自动推广软件
  • 广药网站建设试卷株洲最新今日头条
  • 网站建设管理考核办法微信推广平台怎么做
  • 网站新闻模块代码网络推广有哪些常见的推广方法
  • 合肥大型网站如何推广普通话
  • 高端网站制作软件怎么样推广自己的店铺和产品
  • 无障碍浏览网站怎么做关键词seo排名优化推荐
  • wordpress 247seo推广系统
  • 做深圳门户网站起什么名字好泰州seo外包公司
  • 网站视频上传怎么做百度站长平台论坛
  • wordpress农业模板下载小时seo
  • 做网站语言排名2018发帖推广哪个平台好
  • 销氪crmseo入门讲解