c++ - gSoap:如何优雅地关闭 web 服务应用程序?

标签 c++ web-services soap gsoap

我正在使用 gSoap 编写网络服务。它作为控制台应用程序运行。在我看到的所有 gSoap 示例中,即使在多线程版本中,请求也是在无限循环中分派(dispatch)的,例如 for(;;;)。

但是,当用户按下控制台上的空格键时,我如何才能让我的网络服务正常终止呢?

最好是:

  1. 停止接受新连接;
  2. 为现有的服务;
  3. 退出应用程序

最佳答案

到目前为止我想到的唯一解决方案是使用超时 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/

相关文章:

wcf - 为受 SSL 保护的 WSIT/Metro Web 服务和客户端设置身份验证

java - 处理带有 XML 数据的传入 SOAPMessage 时出错

java - 使用 java 指定 SOAP 响应中元素的顺序

c++ - 在我的 C++ 库中管理版本的推荐方法

c++ - bool 数组的最小尺寸实现

c++ - 在 C++ 中,如果 throw 是一个表达式,它的类型是什么?

c++ - 指向数据结构中元素的指针安全吗? (C++ 与 QT)

c# - 从我的网站应用程序中引用 .pfx 文件

java - 在创建初始 JAX-WS 项目方面需要帮助

c# - 使用 WCF 在客户端中获取签名的 SOAP 消息