当前位置: 首页 > 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.pierceye.com/news/453361/

相关文章:

  • 电商网站建设运城网站图片链接怎么做的
  • 服务器建网站教程宁波网络营销推广制作
  • 微信公众号属于网站建设网站云解析域名解析
  • 网站的建设及推广在哪找可以做网站的
  • 网站经常修改好不好北京互联网公司50强
  • 知识网站有哪些h5用什么制作
  • 广州网站制作联系方式上海共有多少家企业
  • 自己建一个网站需要什么网站关键词分析工具
  • 建三江建设局网站四川省建设厅官方网站电话
  • 福建志佳建设工程发展有限公司网站vi品牌包装
  • 专业门户网站开发公司龙岩正规全网品牌营销招商
  • 网站怎么做qq微信登陆政务网站的建设时期的概述
  • 购物网站的目的和意义西安做网站xamokj
  • 厦门市建设局网站网站开发周记30篇
  • 工业园区门户网站建设方案塘沽网站开发
  • 郑州网站设计 公司驻马店市可以做网站的公司
  • 推荐盐城网站开发安陆网站开发
  • wordpress中文网站模板软件开发者路线图
  • 福清市建设局网站深圳网站制作品牌祥奔科技
  • 工程建设采购有哪些网站做网络销售怎么样
  • wordpress数据库和网站文件下载商业网站成功的原因
  • 30岁转行做网站设计百度秒收网站
  • 网页设计与制作心得体会1000福州网站seo公司
  • 学校网站定位手机网站建设怎么样
  • 苏州科技网站建设模板网站 seo
  • 免费qq刷赞网站推广网站建设具体项目及价格
  • 怎么做网站页面代码搜索网站的根目录
  • 网站建设免责申明书做qq图片的网站吗
  • 营销型单页网站电子商务平台建设
  • 去柬埔寨做网站是传销吗app推广服务部