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

建设银行潮州分行网站美橙网站建设南的

建设银行潮州分行网站,美橙网站建设南的,gta5网站建设,怎么做一个局域网站day16-重构核心库、使用智能指针#xff08;3#xff09; 最后将使用这个库的方式进行展示。 1、客户端 在while ((o getopt(argc, argv, optstring)) ! -1)所有的操作都是获取参数的操作#xff0c;threads 、msgs 和wait 分别指线程数、消息长度以及等待时间。 创建一…day16-重构核心库、使用智能指针3 最后将使用这个库的方式进行展示。 1、客户端 在while ((o getopt(argc, argv, optstring)) ! -1)所有的操作都是获取参数的操作threads 、msgs 和wait 分别指线程数、消息长度以及等待时间。 创建一个长度为threads的线程池绑定任务这种方式常用于回调函数的绑定可以将某个函数与特定的参数值绑定形成一个新的函数对象方便在后续使用将任务不断加入线程池中进行处理。 int main(int argc, char *argv[]) {int threads 100;int msgs 100;int wait 0;int o -1;const char *optstring t:m:w:;while ((o getopt(argc, argv, optstring)) ! -1) {switch (o) {case t:threads std::stoi(optarg);break;case m:msgs std::stoi(optarg);break;case w:wait std::stoi(optarg);break;case ?:printf(error optopt: %c\n, optopt);printf(error opterr: %d\n, opterr);break;default:break;}}ThreadPool *poll new ThreadPool(threads);std::functionvoid() func std::bind(OneClient, msgs, wait);for (int i 0; i threads; i) {poll-Add(func);}delete poll;return 0; }OneClient作为任务函数创建了一个socket作为客户端并与服务器进行连接将连接中的读/写缓存进行初始化并新建连接开始不断从内核进行写读。 void OneClient(int msgs, int wait) {Socket *sock new Socket();sock-Create();sock-Connect(127.0.0.1, 1234);Connection *conn new Connection(sock-fd(), nullptr);sleep(wait);int count 0;while (count msgs) {conn-set_send_buf(Im client!);conn-Write();if (conn-state() Connection::State::Closed) {conn-Close();break;}conn-Read();std::cout msg count count : conn-read_buf()-c_str() std::endl;}delete sock;delete conn; }2、服务器 首先创建sever服务器在这个过程中完成了MainReactor、创建socket、绑定、监听、创建一个线程池并创建多个子 Reactor 等一系列动作。 当程序接收到SIGINT信号时即用户按下CtrlC键时会执行所注册的信号处理函数。在这个例子中信号处理函数的作用是释放服务器对象的内存、输出提示信息并正常退出程序。 设置连接发生时的回调函数以及接收数据的回调函数 int main() {TcpServer *server new TcpServer();Signal::signal(SIGINT, [] {delete server;std::cout \nServer exit! std::endl;exit(0);});server-onConnect([](Connection *conn) { std::cout New connection fd: conn-socket()-fd() std::endl; });server-onRecv([](Connection *conn) {std::cout Message from client conn-read_buf()-c_str() std::endl;conn-Send(conn-read_buf()-c_str());});server-Start();delete server;return 0; }主Reactor在主线程中运行专门负责监听和分发新的连接请求从而实现了整个服务器的高效事件处理。 当服务器启动时 1、主Reactor开始监听新的连接请求。 2、每当有新的连接到达时主Reactor接受连接并将其分配给某个子Reactor。 3、子Reactor在自己的线程中运行不断地处理与该连接相关的读写事件。 4、由于所有的 Loop 方法都在独立的线程中运行因此它们可以并发地处理各自的事件而不会互相阻塞。 子Reactor处理的事件在线程池的线程中而主Reactor处理的事件在主线程中。各自会被EventLoop不断轮询直到停止。
http://www.zqtcl.cn/news/958309/

相关文章:

  • 合肥网站制作哪家好建设网站培训班
  • 优化站诊断山东大型网站建设
  • 网页设计与制作个人网站网络开发工程师
  • 沈阳网站关键词优化哪家好外贸营销网站制作公司
  • 连云港做网站的临沂网站建设有哪些
  • 做毕设的网站万wordpress图片怎么居中
  • 首页网站模板网站外链分析怎么做
  • so域名的网站有哪些结合公众号小店做网站
  • 阜宁专业做网站做信息网站能挣钱吗
  • wordpress 怎么手动更新宝安网站 建设seo信科
  • 腾讯的网站建设用了多少钱找人合伙做网站平台
  • 企业网站功能模块介绍服务器免费体验
  • 小程序制作收款网站结构优化的优化包括
  • 北京市建设工程质监站网站poi player wordpress
  • php网站开发工程师招聘网自己做小程序要钱吗
  • 两学一做考试网站空间网
  • 齐诺网站建设东莞网站建设做网站集团网站群
  • 网站运营策略如何做软件网站开发培训
  • 数据库型网站wordpress上传工具
  • 太原建站公司模板宁波seo公司哪家好
  • 电商网站都是用什么做的承接电商网站建设
  • c2c网站代表有哪些怎样制作个人网站
  • wordpress linux 建站安丘市建设局官方网站
  • 谁给个好网站硬件开发是什么
  • 海外网站加速器免费长春做网站优化哪家好
  • 建立网站需要多长钱电脑网页设计培训
  • 给网站划分栏目邢台做网站优化费用
  • 网群企业网站管理系统红塔区住房和城乡建设局网站
  • 濮阳网站建设在哪做沈阳百度网站的优点
  • 网站上如何做问卷调查温州建设局官方网站