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

如何做短信验证码网站虚拟网站php专业型

如何做短信验证码网站,虚拟网站php专业型,html代码雨,南昌做网站的流程提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言管理的字段连接内存管理对象 前言 我们的网络通信框架使用的muduo库,而在mudu库中是已经有了连接的概念,但是我们呢还有一个信道的概念…

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 管理的字段
  • 连接内存管理对象


前言

我们的网络通信框架使用的muduo库,而在mudu库中是已经有了连接的概念,但是我们呢还有一个信道的概念muduo库是没有的。其实muduo库是有一个channel的概念的,只不过这个概念和我们这里的channel不一样。
这也就是我们要封装这个模块的意义。


管理的字段

有一个信道内存管理句柄,因为一个连接上可以有多个信道。

 class Connection{private:muduo::net::TcpConnectionPtr _conn;ProtobufCodecPtr _codec;VirtualHost::ptr _host;ConsumerManager::ptr _cmp;ThreadPool::ptr _pool;ChannelManager::ptr _channels;}

提供了三个操作分别是的打开信道,关闭信道和获取指定信道。
就是调用信道内存管理句柄进行操作。
打开信道和关闭都是需要给客户端返回响应的。

 void openChannel(const openChannelRequestPtr &req){bool ret = _channels->openChannel(req->cid(),_host,_cmp,_codec,_conn,_pool);if(ret == false){return basicResponse(false,req->rid(),req->cid());}return basicResponse(true,req->rid(),req->cid());
}void closeChannel(const closeChannelRequestPtr &req){_channels->closeChannel(req->cid());return basicResponse(true, req->rid(), req->cid());
}Channel::ptr getChannel(const std::string &cid){return _channels->getChannel(cid);
}

连接内存管理对象

服务器上可能会存在多条链接,因此我们也需要把连接管理起来
通过一个哈希表,建立tcp连接和连接管理对象的映射。

class ConnectionManager{private:std::mutex _mutex;std::unordered_map<muduo::net::TcpConnectionPtr,Connection::ptr> _conns;}

提供三个操作,新建连接。关闭连接和获取指定连接。
在服务器中就需要管理这个句柄,就可以管理所有的channel了。

void newConnection(const VirtualHost::ptr &host,const ConsumerManager::ptr &cmp,const ProtobufCodecPtr &codec,const muduo::net::TcpConnectionPtr &conn,const ThreadPool::ptr &pool){std::unique_lock<std::mutex> lock(_mutex);auto it = _conns.find(conn);if (it != _conns.end()) {return ;}Connection::ptr self_conn = std::make_shared<Connection>(host,cmp, codec, conn, pool);_conns.insert(std::make_pair(conn, self_conn));   }void delConnection(const muduo::net::TcpConnectionPtr &conn){std::unique_lock<std::mutex> lock(_mutex);_conns.erase(conn);}Connection::ptr getConnection(const muduo::net::TcpConnectionPtr &conn){std::unique_lock<std::mutex> lock(_mutex);auto it = _conns.find(conn);if (it == _conns.end()) {return Connection::ptr();}return it->second;}
http://www.yayakq.cn/news/508346/

相关文章:

  • 深圳工信部网站备案信息查询交易平台app下载
  • 旅游网站建设ppt高端网络工程师培训
  • 外贸网站seo教程开个大型购物网站需要多少钱
  • 找网络公司建网站的流程做类似3d溜溜的网站
  • 网站做背景不显示wordpress页面加载动画插件
  • 中国城乡住房和城乡建设部网站首页网站不备案什么意思
  • wordpress站群服务器上海网站建设公司有多少家
  • 优秀网站建设模板如何自学wordpress
  • 建网站要学哪些软件怎么通过做网站赚钱吗
  • 网站建设策划书范文六篇精选深圳深圳网站建设
  • 三线城市做网站需求wordpress文章添加tag标签
  • 网站建设忄金手指快速谈谈你在建设主题资源网站时
  • 深圳招聘网站前十排名网站整体配色方案
  • 淘宝买cdk自己做网站wordpress华为
  • 签合网站是哪个网站开发工具与环境
  • 泰州做企业网站的哪里好杭州城市建设网站
  • 创维网站关键字优化个人互动网站
  • 陕煤建设集团网站python好还是wordpress
  • 禅城区建设局网站苏州十大互联网公司
  • 莱阳建设局网站房产信息门户网站建设方案
  • 电子商务网站建设用什么语言喜欢做网站的行业
  • 广告公司网站设计策划网站建设方案500字
  • 手机网站开发 视频微营销的方式有哪些
  • 搭建自己的博客网站在线做网站免费黄搞
  • 婚庆网站建设策划案做网站相册
  • 天峻县公司网站建设怎么在网上注册自己的网站
  • 宁波网站制作工具网页设计模板素材网站
  • 百度上搜不到网站深圳建设银行分行网站
  • 做网站开发的薪酬怎么样创建域名
  • 河北省住房和城乡建设厅网站首页投资公司名字大全集