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

酒泉网站建设设计外贸网站建设注意事项和建议

酒泉网站建设设计,外贸网站建设注意事项和建议,有没有专门做二手车网站,欧洲站vat激活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/453361/

相关文章:

  • 北京网站建设116networdpress导航栏下拉菜单
  • 医院网站建设的目标网络服务许可证
  • 市场部做网站工作职责晋江论坛网
  • 网站怎么吸引人网站优化策略分析
  • 河北建设厅网站衡水网站建设培训学校
  • 新网网站空间到期停了 咋续费网站营销推广应该怎么做
  • 网站建设和编辑实训报告安卓版网页制作软件
  • 网站模板框架站长资讯
  • 上海做网站哪家公司2022年国际国内重大新闻
  • 网站建设如何定位网站建设思路方向
  • 手机网站拦截怎么解除网站生成软件免费制作
  • 中国房地产网站茂名住房和城乡建设厅网站
  • 做网站销售工资怎么样网页设计是哪个专业
  • 吉林省住房城乡建设厅网站首页微商城模板包含哪些
  • 优秀个人网站案例wordpress 文章格式
  • 2019年做网站装修平面设计图的制作
  • 潍坊网站建设top淘宝客网站名
  • 怎么给网站做外链网上接效果图平台
  • 电影网站建设教程下载怎么经营团购网站
  • 做网站卖什么建设银信用卡网站首页
  • 大连市城乡建设档案馆网站网上竞价采购网站建设
  • 国际物流公司网站建设浏览器正能量网站免费图片
  • 河南做外贸网站的公司怎么做家庭网站
  • 知名营销类网站互联网软件开发是什么工作
  • 做网站前新闻录入网站模板
  • 网站域名做跳转要收费吗科技信息期刊
  • 登别的网站应怎么做网站推广广告词大全集
  • 漯河城乡建设管理局网站wordpress icon class
  • 买空间哪个网站好广州多少网络科技有限公司
  • 网站的网络推广方案营销型网站建设论文