【发布时间】:2017-11-20 05:08:53
【问题描述】:
我正在尝试创建一个 C++ 守护程序,它能够通过网络以数据包的形式异步发送/接收请求/响应。它应该与客户端(面向外部的消息 API)和其他守护进程(服务器间消息)进行通信
我目前正在查看boost::asio,特别是http://www.boost.org/doc/libs/1_65_1/doc/html/boost_asio/tutorial/tutdaytime6/src.html 作为起点,它似乎正在运行能够处理异步的服务器。发送和接收。
我的问题是,该服务器是否可以与(在后台)命令循环一起运行,例如响应用户输入的进程(例如 shell)?提供的日间服务器程序好像卡在了io_service.run();
这是否需要分叉或单独的线程服务器?
【问题讨论】:
-
看看io_service::poll 和poll_one 成员函数 - 您可以将这些调用与 3-d 派对消息循环交错。
-
或者首先使用流支持来读取标准输入stackoverflow.com/a/23721159/85371
标签: c++ asynchronous boost network-programming boost-asio