我正在使用 gSoap 编写网络服务。它作为控制台应用程序运行。在我看到的所有 gSoap 示例中,即使在多线程版本中,请求也是在无限循环中分派(dispatch)的,例如 for(;;;)。
但是,当用户按下控制台上的空格键时,我如何才能让我的网络服务正常终止呢?
最好是:
- 停止接受新连接;
- 为现有的服务;
- 退出应用程序
最佳答案
到目前为止我想到的唯一解决方案是使用超时 soap->recv_timeout = 20; soap->send_timeout = 20; soap->connect_timeout = 5; soap->accept_timeout = 5; 然后所有阻塞函数周期性返回。但这对我来说并不理想,因为我希望即使有正在进行的传输也能够快速终止应用程序,但与此同时,不想在慢速/不稳定连接上妥协可靠性(它是嵌入式通过 GPRS 连接的设备)。
关于c++ - gSoap:如何优雅地关闭 web 服务应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5238780/